home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / AIncludes / QD3DGeometry.a < prev    next >
Encoding:
Text File  |  1998-04-09  |  83.9 KB  |  2,901 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DGeometry.a
  3. ;
  4. ;    Contains:    Q3Geometry methods                                        
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.4
  7. ;                Release:    QuickTime 3.0
  8. ;
  9. ;    Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QD3DGEOMETRY__') = 'UNDEFINED' THEN
  19. __QD3DGEOMETRY__ SET 1
  20.  
  21.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  22.     include 'QD3D.a'
  23.     ENDIF
  24.  
  25.     IF &TYPE('__QD3DSET__') = 'UNDEFINED' THEN
  26.     include 'QD3DSet.a'
  27.     ENDIF
  28.  
  29. ; ******************************************************************************
  30. ; **                                                                             **
  31. ; **                                Geometry Routines                             **
  32. ; **                                                                             **
  33. ; ****************************************************************************
  34.  
  35. ;
  36. ; extern TQ3ObjectType Q3Geometry_GetType(TQ3GeometryObject geometry)
  37. ;
  38.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  39.         IMPORT_CFM_FUNCTION Q3Geometry_GetType
  40.     ENDIF
  41.  
  42. ;
  43. ; extern TQ3Status Q3Geometry_GetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet *attributeSet)
  44. ;
  45.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  46.         IMPORT_CFM_FUNCTION Q3Geometry_GetAttributeSet
  47.     ENDIF
  48.  
  49. ;
  50. ; extern TQ3Status Q3Geometry_SetAttributeSet(TQ3GeometryObject geometry, TQ3AttributeSet attributeSet)
  51. ;
  52.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  53.         IMPORT_CFM_FUNCTION Q3Geometry_SetAttributeSet
  54.     ENDIF
  55.  
  56. ;
  57. ; extern TQ3Status Q3Geometry_Submit(TQ3GeometryObject geometry, TQ3ViewObject view)
  58. ;
  59.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  60.         IMPORT_CFM_FUNCTION Q3Geometry_Submit
  61.     ENDIF
  62.  
  63.  
  64.  
  65. ; ******************************************************************************
  66. ; **                                                                             **
  67. ; **                            Box    Data Structure Definitions                     **
  68. ; **                                                                             **
  69. ; ****************************************************************************
  70.  
  71. TQ3BoxData                RECORD 0
  72. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  73. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  74. majorAxis                 ds        TQ3Vector3D        ; offset: $18 (24)
  75. minorAxis                 ds        TQ3Vector3D        ; offset: $24 (36)
  76. faceAttributeSet         ds.l    1                ; offset: $30 (48)        ;  Ordering : Left, right,     
  77. ;               front, back,     
  78. ;               top, bottom    
  79. boxAttributeSet             ds.l    1                ; offset: $34 (52)
  80. sizeof                     EQU *                    ; size:   $38 (56)
  81.                         ENDR
  82.  
  83. ; ******************************************************************************
  84. ; **                                                                             **
  85. ; **                                Box Routines                                 **
  86. ; **                                                                             **
  87. ; ****************************************************************************
  88.  
  89. ;
  90. ; extern TQ3GeometryObject Q3Box_New(const TQ3BoxData *boxData)
  91. ;
  92.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  93.         IMPORT_CFM_FUNCTION Q3Box_New
  94.     ENDIF
  95.  
  96. ;
  97. ; extern TQ3Status Q3Box_Submit(const TQ3BoxData *boxData, TQ3ViewObject view)
  98. ;
  99.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  100.         IMPORT_CFM_FUNCTION Q3Box_Submit
  101.     ENDIF
  102.  
  103. ;
  104. ; extern TQ3Status Q3Box_SetData(TQ3GeometryObject box, const TQ3BoxData *boxData)
  105. ;
  106.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  107.         IMPORT_CFM_FUNCTION Q3Box_SetData
  108.     ENDIF
  109.  
  110. ;
  111. ; extern TQ3Status Q3Box_GetData(TQ3GeometryObject box, TQ3BoxData *boxData)
  112. ;
  113.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  114.         IMPORT_CFM_FUNCTION Q3Box_GetData
  115.     ENDIF
  116.  
  117. ;
  118. ; extern TQ3Status Q3Box_EmptyData(TQ3BoxData *boxData)
  119. ;
  120.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  121.         IMPORT_CFM_FUNCTION Q3Box_EmptyData
  122.     ENDIF
  123.  
  124. ;
  125. ; extern TQ3Status Q3Box_SetOrigin(TQ3GeometryObject box, const TQ3Point3D *origin)
  126. ;
  127.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  128.         IMPORT_CFM_FUNCTION Q3Box_SetOrigin
  129.     ENDIF
  130.  
  131. ;
  132. ; extern TQ3Status Q3Box_SetOrientation(TQ3GeometryObject box, const TQ3Vector3D *orientation)
  133. ;
  134.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  135.         IMPORT_CFM_FUNCTION Q3Box_SetOrientation
  136.     ENDIF
  137.  
  138. ;
  139. ; extern TQ3Status Q3Box_SetMajorAxis(TQ3GeometryObject box, const TQ3Vector3D *majorAxis)
  140. ;
  141.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  142.         IMPORT_CFM_FUNCTION Q3Box_SetMajorAxis
  143.     ENDIF
  144.  
  145. ;
  146. ; extern TQ3Status Q3Box_SetMinorAxis(TQ3GeometryObject box, const TQ3Vector3D *minorAxis)
  147. ;
  148.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  149.         IMPORT_CFM_FUNCTION Q3Box_SetMinorAxis
  150.     ENDIF
  151.  
  152. ;
  153. ; extern TQ3Status Q3Box_GetOrigin(TQ3GeometryObject box, TQ3Point3D *origin)
  154. ;
  155.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  156.         IMPORT_CFM_FUNCTION Q3Box_GetOrigin
  157.     ENDIF
  158.  
  159. ;
  160. ; extern TQ3Status Q3Box_GetOrientation(TQ3GeometryObject box, TQ3Vector3D *orientation)
  161. ;
  162.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  163.         IMPORT_CFM_FUNCTION Q3Box_GetOrientation
  164.     ENDIF
  165.  
  166. ;
  167. ; extern TQ3Status Q3Box_GetMajorAxis(TQ3GeometryObject box, TQ3Vector3D *majorAxis)
  168. ;
  169.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  170.         IMPORT_CFM_FUNCTION Q3Box_GetMajorAxis
  171.     ENDIF
  172.  
  173. ;
  174. ; extern TQ3Status Q3Box_GetMinorAxis(TQ3GeometryObject box, TQ3Vector3D *minorAxis)
  175. ;
  176.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  177.         IMPORT_CFM_FUNCTION Q3Box_GetMinorAxis
  178.     ENDIF
  179.  
  180. ;
  181. ; extern TQ3Status Q3Box_GetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet *faceAttributeSet)
  182. ;
  183.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  184.         IMPORT_CFM_FUNCTION Q3Box_GetFaceAttributeSet
  185.     ENDIF
  186.  
  187. ;
  188. ; extern TQ3Status Q3Box_SetFaceAttributeSet(TQ3GeometryObject box, unsigned long faceIndex, TQ3AttributeSet faceAttributeSet)
  189. ;
  190.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  191.         IMPORT_CFM_FUNCTION Q3Box_SetFaceAttributeSet
  192.     ENDIF
  193.  
  194.  
  195.  
  196. ; ******************************************************************************
  197. ; **                                                                             **
  198. ; **                        Cone Data Structure Definitions                          **
  199. ; **                                                                             **
  200. ; ****************************************************************************
  201.  
  202. TQ3ConeData                RECORD 0
  203. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  204. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  205. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  206. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  207. uMin                     ds        Float32            ; offset: $30 (48)
  208. uMax                     ds        Float32            ; offset: $34 (52)
  209. vMin                     ds        Float32            ; offset: $38 (56)
  210. vMax                     ds        Float32            ; offset: $3C (60)
  211. caps                     ds.l    1                ; offset: $40 (64)
  212. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  213. faceAttributeSet         ds.l    1                ; offset: $48 (72)
  214. bottomAttributeSet         ds.l    1                ; offset: $4C (76)
  215. coneAttributeSet         ds.l    1                ; offset: $50 (80)
  216. sizeof                     EQU *                    ; size:   $54 (84)
  217.                         ENDR
  218. ; ******************************************************************************
  219. ; **                                                                             **
  220. ; **                                Cone Routines                                 **
  221. ; **                                                                             **
  222. ; ****************************************************************************
  223.  
  224. ;
  225. ; extern TQ3GeometryObject Q3Cone_New(const TQ3ConeData *coneData)
  226. ;
  227.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  228.         IMPORT_CFM_FUNCTION Q3Cone_New
  229.     ENDIF
  230.  
  231. ;
  232. ; extern TQ3Status Q3Cone_Submit(const TQ3ConeData *coneData, TQ3ViewObject view)
  233. ;
  234.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  235.         IMPORT_CFM_FUNCTION Q3Cone_Submit
  236.     ENDIF
  237.  
  238. ;
  239. ; extern TQ3Status Q3Cone_SetData(TQ3GeometryObject cone, const TQ3ConeData *coneData)
  240. ;
  241.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  242.         IMPORT_CFM_FUNCTION Q3Cone_SetData
  243.     ENDIF
  244.  
  245. ;
  246. ; extern TQ3Status Q3Cone_GetData(TQ3GeometryObject cone, TQ3ConeData *coneData)
  247. ;
  248.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  249.         IMPORT_CFM_FUNCTION Q3Cone_GetData
  250.     ENDIF
  251.  
  252. ;
  253. ; extern TQ3Status Q3Cone_SetOrigin(TQ3GeometryObject cone, const TQ3Point3D *origin)
  254. ;
  255.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  256.         IMPORT_CFM_FUNCTION Q3Cone_SetOrigin
  257.     ENDIF
  258.  
  259. ;
  260. ; extern TQ3Status Q3Cone_SetOrientation(TQ3GeometryObject cone, const TQ3Vector3D *orientation)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  263.         IMPORT_CFM_FUNCTION Q3Cone_SetOrientation
  264.     ENDIF
  265.  
  266. ;
  267. ; extern TQ3Status Q3Cone_SetMajorRadius(TQ3GeometryObject cone, const TQ3Vector3D *majorRadius)
  268. ;
  269.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  270.         IMPORT_CFM_FUNCTION Q3Cone_SetMajorRadius
  271.     ENDIF
  272.  
  273. ;
  274. ; extern TQ3Status Q3Cone_SetMinorRadius(TQ3GeometryObject cone, const TQ3Vector3D *minorRadius)
  275. ;
  276.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  277.         IMPORT_CFM_FUNCTION Q3Cone_SetMinorRadius
  278.     ENDIF
  279.  
  280. ;
  281. ; extern TQ3Status Q3Cone_GetOrigin(TQ3GeometryObject cone, TQ3Point3D *origin)
  282. ;
  283.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  284.         IMPORT_CFM_FUNCTION Q3Cone_GetOrigin
  285.     ENDIF
  286.  
  287. ;
  288. ; extern TQ3Status Q3Cone_GetOrientation(TQ3GeometryObject cone, TQ3Vector3D *orientation)
  289. ;
  290.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  291.         IMPORT_CFM_FUNCTION Q3Cone_GetOrientation
  292.     ENDIF
  293.  
  294. ;
  295. ; extern TQ3Status Q3Cone_GetMajorRadius(TQ3GeometryObject cone, TQ3Vector3D *majorRadius)
  296. ;
  297.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  298.         IMPORT_CFM_FUNCTION Q3Cone_GetMajorRadius
  299.     ENDIF
  300.  
  301. ;
  302. ; extern TQ3Status Q3Cone_GetMinorRadius(TQ3GeometryObject cone, TQ3Vector3D *minorRadius)
  303. ;
  304.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  305.         IMPORT_CFM_FUNCTION Q3Cone_GetMinorRadius
  306.     ENDIF
  307.  
  308. ;
  309. ; extern TQ3Status Q3Cone_SetCaps(TQ3GeometryObject cone, TQ3EndCap caps)
  310. ;
  311.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  312.         IMPORT_CFM_FUNCTION Q3Cone_SetCaps
  313.     ENDIF
  314.  
  315. ;
  316. ; extern TQ3Status Q3Cone_GetCaps(TQ3GeometryObject cone, TQ3EndCap *caps)
  317. ;
  318.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  319.         IMPORT_CFM_FUNCTION Q3Cone_GetCaps
  320.     ENDIF
  321.  
  322. ;
  323. ; extern TQ3Status Q3Cone_SetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet bottomAttributeSet)
  324. ;
  325.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  326.         IMPORT_CFM_FUNCTION Q3Cone_SetBottomAttributeSet
  327.     ENDIF
  328.  
  329. ;
  330. ; extern TQ3Status Q3Cone_GetBottomAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *bottomAttributeSet)
  331. ;
  332.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  333.         IMPORT_CFM_FUNCTION Q3Cone_GetBottomAttributeSet
  334.     ENDIF
  335.  
  336. ;
  337. ; extern TQ3Status Q3Cone_SetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet faceAttributeSet)
  338. ;
  339.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  340.         IMPORT_CFM_FUNCTION Q3Cone_SetFaceAttributeSet
  341.     ENDIF
  342.  
  343. ;
  344. ; extern TQ3Status Q3Cone_GetFaceAttributeSet(TQ3GeometryObject cone, TQ3AttributeSet *faceAttributeSet)
  345. ;
  346.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  347.         IMPORT_CFM_FUNCTION Q3Cone_GetFaceAttributeSet
  348.     ENDIF
  349.  
  350. ;
  351. ; extern TQ3Status Q3Cone_EmptyData(TQ3ConeData *coneData)
  352. ;
  353.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  354.         IMPORT_CFM_FUNCTION Q3Cone_EmptyData
  355.     ENDIF
  356.  
  357.  
  358.  
  359.  
  360. ; ******************************************************************************
  361. ; **                                                                             **
  362. ; **                        Cylinder Data Structure Definitions                     **
  363. ; **                                                                             **
  364. ; ****************************************************************************
  365.  
  366. TQ3CylinderData            RECORD 0
  367. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  368. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  369. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  370. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  371. uMin                     ds        Float32            ; offset: $30 (48)
  372. uMax                     ds        Float32            ; offset: $34 (52)
  373. vMin                     ds        Float32            ; offset: $38 (56)
  374. vMax                     ds        Float32            ; offset: $3C (60)
  375. caps                     ds.l    1                ; offset: $40 (64)
  376. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  377. topAttributeSet             ds.l    1                ; offset: $48 (72)
  378. faceAttributeSet         ds.l    1                ; offset: $4C (76)
  379. bottomAttributeSet         ds.l    1                ; offset: $50 (80)
  380. cylinderAttributeSet     ds.l    1                ; offset: $54 (84)
  381. sizeof                     EQU *                    ; size:   $58 (88)
  382.                         ENDR
  383. ; ******************************************************************************
  384. ; **                                                                             **
  385. ; **                            Cylinder Routines                                 **
  386. ; **                                                                             **
  387. ; ****************************************************************************
  388.  
  389. ;
  390. ; extern TQ3GeometryObject Q3Cylinder_New(const TQ3CylinderData *cylinderData)
  391. ;
  392.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  393.         IMPORT_CFM_FUNCTION Q3Cylinder_New
  394.     ENDIF
  395.  
  396. ;
  397. ; extern TQ3Status Q3Cylinder_Submit(const TQ3CylinderData *cylinderData, TQ3ViewObject view)
  398. ;
  399.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  400.         IMPORT_CFM_FUNCTION Q3Cylinder_Submit
  401.     ENDIF
  402.  
  403. ;
  404. ; extern TQ3Status Q3Cylinder_SetData(TQ3GeometryObject cylinder, const TQ3CylinderData *cylinderData)
  405. ;
  406.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  407.         IMPORT_CFM_FUNCTION Q3Cylinder_SetData
  408.     ENDIF
  409.  
  410. ;
  411. ; extern TQ3Status Q3Cylinder_GetData(TQ3GeometryObject cylinder, TQ3CylinderData *cylinderData)
  412. ;
  413.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  414.         IMPORT_CFM_FUNCTION Q3Cylinder_GetData
  415.     ENDIF
  416.  
  417. ;
  418. ; extern TQ3Status Q3Cylinder_SetOrigin(TQ3GeometryObject cylinder, const TQ3Point3D *origin)
  419. ;
  420.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  421.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrigin
  422.     ENDIF
  423.  
  424. ;
  425. ; extern TQ3Status Q3Cylinder_SetOrientation(TQ3GeometryObject cylinder, const TQ3Vector3D *orientation)
  426. ;
  427.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  428.         IMPORT_CFM_FUNCTION Q3Cylinder_SetOrientation
  429.     ENDIF
  430.  
  431. ;
  432. ; extern TQ3Status Q3Cylinder_SetMajorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *majorRadius)
  433. ;
  434.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  435.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMajorRadius
  436.     ENDIF
  437.  
  438. ;
  439. ; extern TQ3Status Q3Cylinder_SetMinorRadius(TQ3GeometryObject cylinder, const TQ3Vector3D *minorRadius)
  440. ;
  441.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  442.         IMPORT_CFM_FUNCTION Q3Cylinder_SetMinorRadius
  443.     ENDIF
  444.  
  445. ;
  446. ; extern TQ3Status Q3Cylinder_GetOrigin(TQ3GeometryObject cylinder, TQ3Point3D *origin)
  447. ;
  448.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  449.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrigin
  450.     ENDIF
  451.  
  452. ;
  453. ; extern TQ3Status Q3Cylinder_GetOrientation(TQ3GeometryObject cylinder, TQ3Vector3D *orientation)
  454. ;
  455.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  456.         IMPORT_CFM_FUNCTION Q3Cylinder_GetOrientation
  457.     ENDIF
  458.  
  459. ;
  460. ; extern TQ3Status Q3Cylinder_GetMajorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *majorRadius)
  461. ;
  462.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  463.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMajorRadius
  464.     ENDIF
  465.  
  466. ;
  467. ; extern TQ3Status Q3Cylinder_GetMinorRadius(TQ3GeometryObject cylinder, TQ3Vector3D *minorRadius)
  468. ;
  469.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  470.         IMPORT_CFM_FUNCTION Q3Cylinder_GetMinorRadius
  471.     ENDIF
  472.  
  473.  
  474. ;
  475. ; extern TQ3Status Q3Cylinder_SetCaps(TQ3GeometryObject cylinder, TQ3EndCap caps)
  476. ;
  477.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  478.         IMPORT_CFM_FUNCTION Q3Cylinder_SetCaps
  479.     ENDIF
  480.  
  481. ;
  482. ; extern TQ3Status Q3Cylinder_GetCaps(TQ3GeometryObject cylinder, TQ3EndCap *caps)
  483. ;
  484.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  485.         IMPORT_CFM_FUNCTION Q3Cylinder_GetCaps
  486.     ENDIF
  487.  
  488.  
  489. ;
  490. ; extern TQ3Status Q3Cylinder_SetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet topAttributeSet)
  491. ;
  492.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  493.         IMPORT_CFM_FUNCTION Q3Cylinder_SetTopAttributeSet
  494.     ENDIF
  495.  
  496. ;
  497. ; extern TQ3Status Q3Cylinder_GetTopAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *topAttributeSet)
  498. ;
  499.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  500.         IMPORT_CFM_FUNCTION Q3Cylinder_GetTopAttributeSet
  501.     ENDIF
  502.  
  503. ;
  504. ; extern TQ3Status Q3Cylinder_SetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet bottomAttributeSet)
  505. ;
  506.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  507.         IMPORT_CFM_FUNCTION Q3Cylinder_SetBottomAttributeSet
  508.     ENDIF
  509.  
  510. ;
  511. ; extern TQ3Status Q3Cylinder_GetBottomAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *bottomAttributeSet)
  512. ;
  513.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  514.         IMPORT_CFM_FUNCTION Q3Cylinder_GetBottomAttributeSet
  515.     ENDIF
  516.  
  517. ;
  518. ; extern TQ3Status Q3Cylinder_SetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet faceAttributeSet)
  519. ;
  520.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  521.         IMPORT_CFM_FUNCTION Q3Cylinder_SetFaceAttributeSet
  522.     ENDIF
  523.  
  524. ;
  525. ; extern TQ3Status Q3Cylinder_GetFaceAttributeSet(TQ3GeometryObject cylinder, TQ3AttributeSet *faceAttributeSet)
  526. ;
  527.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  528.         IMPORT_CFM_FUNCTION Q3Cylinder_GetFaceAttributeSet
  529.     ENDIF
  530.  
  531. ;
  532. ; extern TQ3Status Q3Cylinder_EmptyData(TQ3CylinderData *cylinderData)
  533. ;
  534.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  535.         IMPORT_CFM_FUNCTION Q3Cylinder_EmptyData
  536.     ENDIF
  537.  
  538.  
  539.  
  540.  
  541. ; ******************************************************************************
  542. ; **                                                                             **
  543. ; **                        Disk Data Structure Definitions                         **
  544. ; **                                                                             **
  545. ; ****************************************************************************
  546.  
  547. TQ3DiskData                RECORD 0
  548. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  549. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  550. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  551. uMin                     ds        Float32            ; offset: $24 (36)
  552. uMax                     ds        Float32            ; offset: $28 (40)
  553. vMin                     ds        Float32            ; offset: $2C (44)
  554. vMax                     ds        Float32            ; offset: $30 (48)
  555. diskAttributeSet         ds.l    1                ; offset: $34 (52)
  556. sizeof                     EQU *                    ; size:   $38 (56)
  557.                         ENDR
  558. ; ******************************************************************************
  559. ; **                                                                             **
  560. ; **                                Disk Routines                                  **
  561. ; **                                                                             **
  562. ; ****************************************************************************
  563.  
  564. ;
  565. ; extern TQ3GeometryObject Q3Disk_New(const TQ3DiskData *diskData)
  566. ;
  567.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  568.         IMPORT_CFM_FUNCTION Q3Disk_New
  569.     ENDIF
  570.  
  571. ;
  572. ; extern TQ3Status Q3Disk_Submit(const TQ3DiskData *diskData, TQ3ViewObject view)
  573. ;
  574.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  575.         IMPORT_CFM_FUNCTION Q3Disk_Submit
  576.     ENDIF
  577.  
  578. ;
  579. ; extern TQ3Status Q3Disk_SetData(TQ3GeometryObject disk, const TQ3DiskData *diskData)
  580. ;
  581.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  582.         IMPORT_CFM_FUNCTION Q3Disk_SetData
  583.     ENDIF
  584.  
  585. ;
  586. ; extern TQ3Status Q3Disk_GetData(TQ3GeometryObject disk, TQ3DiskData *diskData)
  587. ;
  588.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  589.         IMPORT_CFM_FUNCTION Q3Disk_GetData
  590.     ENDIF
  591.  
  592. ;
  593. ; extern TQ3Status Q3Disk_SetOrigin(TQ3GeometryObject disk, const TQ3Point3D *origin)
  594. ;
  595.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  596.         IMPORT_CFM_FUNCTION Q3Disk_SetOrigin
  597.     ENDIF
  598.  
  599. ;
  600. ; extern TQ3Status Q3Disk_SetMajorRadius(TQ3GeometryObject disk, const TQ3Vector3D *majorRadius)
  601. ;
  602.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  603.         IMPORT_CFM_FUNCTION Q3Disk_SetMajorRadius
  604.     ENDIF
  605.  
  606. ;
  607. ; extern TQ3Status Q3Disk_SetMinorRadius(TQ3GeometryObject disk, const TQ3Vector3D *minorRadius)
  608. ;
  609.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  610.         IMPORT_CFM_FUNCTION Q3Disk_SetMinorRadius
  611.     ENDIF
  612.  
  613. ;
  614. ; extern TQ3Status Q3Disk_GetOrigin(TQ3GeometryObject disk, TQ3Point3D *origin)
  615. ;
  616.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  617.         IMPORT_CFM_FUNCTION Q3Disk_GetOrigin
  618.     ENDIF
  619.  
  620. ;
  621. ; extern TQ3Status Q3Disk_GetMajorRadius(TQ3GeometryObject disk, TQ3Vector3D *majorRadius)
  622. ;
  623.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  624.         IMPORT_CFM_FUNCTION Q3Disk_GetMajorRadius
  625.     ENDIF
  626.  
  627. ;
  628. ; extern TQ3Status Q3Disk_GetMinorRadius(TQ3GeometryObject disk, TQ3Vector3D *minorRadius)
  629. ;
  630.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  631.         IMPORT_CFM_FUNCTION Q3Disk_GetMinorRadius
  632.     ENDIF
  633.  
  634.  
  635. ;
  636. ; extern TQ3Status Q3Disk_EmptyData(TQ3DiskData *diskData)
  637. ;
  638.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  639.         IMPORT_CFM_FUNCTION Q3Disk_EmptyData
  640.     ENDIF
  641.  
  642.  
  643.  
  644.  
  645. ; ******************************************************************************
  646. ; **                                                                             **
  647. ; **                     Ellipse Data Structure Definitions                         **
  648. ; **                                                                             **
  649. ; ****************************************************************************
  650.  
  651. TQ3EllipseData            RECORD 0
  652. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  653. majorRadius                 ds        TQ3Vector3D        ; offset: $C (12)
  654. minorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  655. uMin                     ds        Float32            ; offset: $24 (36)
  656. uMax                     ds        Float32            ; offset: $28 (40)
  657. ellipseAttributeSet         ds.l    1                ; offset: $2C (44)
  658. sizeof                     EQU *                    ; size:   $30 (48)
  659.                         ENDR
  660. ; ******************************************************************************
  661. ; **                                                                             **
  662. ; **                                Ellipse Routines                             **
  663. ; **                                                                             **
  664. ; ****************************************************************************
  665.  
  666. ;
  667. ; extern TQ3GeometryObject Q3Ellipse_New(const TQ3EllipseData *ellipseData)
  668. ;
  669.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  670.         IMPORT_CFM_FUNCTION Q3Ellipse_New
  671.     ENDIF
  672.  
  673. ;
  674. ; extern TQ3Status Q3Ellipse_Submit(const TQ3EllipseData *ellipseData, TQ3ViewObject view)
  675. ;
  676.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  677.         IMPORT_CFM_FUNCTION Q3Ellipse_Submit
  678.     ENDIF
  679.  
  680. ;
  681. ; extern TQ3Status Q3Ellipse_SetData(TQ3GeometryObject ellipse, const TQ3EllipseData *ellipseData)
  682. ;
  683.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  684.         IMPORT_CFM_FUNCTION Q3Ellipse_SetData
  685.     ENDIF
  686.  
  687. ;
  688. ; extern TQ3Status Q3Ellipse_GetData(TQ3GeometryObject ellipse, TQ3EllipseData *ellipseData)
  689. ;
  690.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  691.         IMPORT_CFM_FUNCTION Q3Ellipse_GetData
  692.     ENDIF
  693.  
  694. ;
  695. ; extern TQ3Status Q3Ellipse_SetOrigin(TQ3GeometryObject ellipse, const TQ3Point3D *origin)
  696. ;
  697.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  698.         IMPORT_CFM_FUNCTION Q3Ellipse_SetOrigin
  699.     ENDIF
  700.  
  701. ;
  702. ; extern TQ3Status Q3Ellipse_SetMajorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *majorRadius)
  703. ;
  704.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  705.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMajorRadius
  706.     ENDIF
  707.  
  708. ;
  709. ; extern TQ3Status Q3Ellipse_SetMinorRadius(TQ3GeometryObject ellipse, const TQ3Vector3D *minorRadius)
  710. ;
  711.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  712.         IMPORT_CFM_FUNCTION Q3Ellipse_SetMinorRadius
  713.     ENDIF
  714.  
  715. ;
  716. ; extern TQ3Status Q3Ellipse_GetOrigin(TQ3GeometryObject ellipse, TQ3Point3D *origin)
  717. ;
  718.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  719.         IMPORT_CFM_FUNCTION Q3Ellipse_GetOrigin
  720.     ENDIF
  721.  
  722. ;
  723. ; extern TQ3Status Q3Ellipse_GetMajorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *majorRadius)
  724. ;
  725.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  726.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMajorRadius
  727.     ENDIF
  728.  
  729. ;
  730. ; extern TQ3Status Q3Ellipse_GetMinorRadius(TQ3GeometryObject ellipse, TQ3Vector3D *minorRadius)
  731. ;
  732.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  733.         IMPORT_CFM_FUNCTION Q3Ellipse_GetMinorRadius
  734.     ENDIF
  735.  
  736.  
  737. ;
  738. ; extern TQ3Status Q3Ellipse_EmptyData(TQ3EllipseData *ellipseData)
  739. ;
  740.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  741.         IMPORT_CFM_FUNCTION Q3Ellipse_EmptyData
  742.     ENDIF
  743.  
  744.  
  745.  
  746.  
  747. ; ******************************************************************************
  748. ; **                                                                          **
  749. ; **                            Ellipsoid Data structures                         **
  750. ; **                                                                          **
  751. ; ****************************************************************************
  752.  
  753. TQ3EllipsoidData        RECORD 0
  754. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  755. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  756. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  757. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  758. uMin                     ds        Float32            ; offset: $30 (48)
  759. uMax                     ds        Float32            ; offset: $34 (52)
  760. vMin                     ds        Float32            ; offset: $38 (56)
  761. vMax                     ds        Float32            ; offset: $3C (60)
  762. caps                     ds.l    1                ; offset: $40 (64)
  763. interiorAttributeSet     ds.l    1                ; offset: $44 (68)
  764. ellipsoidAttributeSet     ds.l    1                ; offset: $48 (72)
  765. sizeof                     EQU *                    ; size:   $4C (76)
  766.                         ENDR
  767. ; ******************************************************************************
  768. ; **                                                                          **
  769. ; **                            Ellipsoid Routines                                **
  770. ; **                                                                          **
  771. ; ****************************************************************************
  772.  
  773. ;
  774. ; extern TQ3GeometryObject Q3Ellipsoid_New(const TQ3EllipsoidData *ellipsoidData)
  775. ;
  776.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  777.         IMPORT_CFM_FUNCTION Q3Ellipsoid_New
  778.     ENDIF
  779.  
  780. ;
  781. ; extern TQ3Status Q3Ellipsoid_Submit(const TQ3EllipsoidData *ellipsoidData, TQ3ViewObject view)
  782. ;
  783.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  784.         IMPORT_CFM_FUNCTION Q3Ellipsoid_Submit
  785.     ENDIF
  786.  
  787. ;
  788. ; extern TQ3Status Q3Ellipsoid_SetData(TQ3GeometryObject ellipsoid, const TQ3EllipsoidData *ellipsoidData)
  789. ;
  790.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  791.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetData
  792.     ENDIF
  793.  
  794. ;
  795. ; extern TQ3Status Q3Ellipsoid_GetData(TQ3GeometryObject ellipsoid, TQ3EllipsoidData *ellipsoidData)
  796. ;
  797.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  798.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetData
  799.     ENDIF
  800.  
  801. ;
  802. ; extern TQ3Status Q3Ellipsoid_SetOrigin(TQ3GeometryObject ellipsoid, const TQ3Point3D *origin)
  803. ;
  804.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  805.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrigin
  806.     ENDIF
  807.  
  808. ;
  809. ; extern TQ3Status Q3Ellipsoid_SetOrientation(TQ3GeometryObject ellipsoid, const TQ3Vector3D *orientation)
  810. ;
  811.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  812.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetOrientation
  813.     ENDIF
  814.  
  815. ;
  816. ; extern TQ3Status Q3Ellipsoid_SetMajorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *majorRadius)
  817. ;
  818.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  819.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMajorRadius
  820.     ENDIF
  821.  
  822. ;
  823. ; extern TQ3Status Q3Ellipsoid_SetMinorRadius(TQ3GeometryObject ellipsoid, const TQ3Vector3D *minorRadius)
  824. ;
  825.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  826.         IMPORT_CFM_FUNCTION Q3Ellipsoid_SetMinorRadius
  827.     ENDIF
  828.  
  829. ;
  830. ; extern TQ3Status Q3Ellipsoid_GetOrigin(TQ3GeometryObject ellipsoid, TQ3Point3D *origin)
  831. ;
  832.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  833.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrigin
  834.     ENDIF
  835.  
  836. ;
  837. ; extern TQ3Status Q3Ellipsoid_GetOrientation(TQ3GeometryObject ellipsoid, TQ3Vector3D *orientation)
  838. ;
  839.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  840.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetOrientation
  841.     ENDIF
  842.  
  843. ;
  844. ; extern TQ3Status Q3Ellipsoid_GetMajorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *majorRadius)
  845. ;
  846.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  847.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMajorRadius
  848.     ENDIF
  849.  
  850. ;
  851. ; extern TQ3Status Q3Ellipsoid_GetMinorRadius(TQ3GeometryObject ellipsoid, TQ3Vector3D *minorRadius)
  852. ;
  853.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  854.         IMPORT_CFM_FUNCTION Q3Ellipsoid_GetMinorRadius
  855.     ENDIF
  856.  
  857. ;
  858. ; extern TQ3Status Q3Ellipsoid_EmptyData(TQ3EllipsoidData *ellipsoidData)
  859. ;
  860.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  861.         IMPORT_CFM_FUNCTION Q3Ellipsoid_EmptyData
  862.     ENDIF
  863.  
  864.  
  865.  
  866.  
  867. ; ******************************************************************************
  868. ; **                                                                             **
  869. ; **                    General Polygon Data Structure Definitions                 **
  870. ; **                                                                             **
  871. ; ****************************************************************************
  872.  
  873.  
  874. ; typedef long                            TQ3GeneralPolygonShapeHint
  875. kQ3GeneralPolygonShapeHintComplex EQU    0
  876. kQ3GeneralPolygonShapeHintConcave EQU    1
  877. kQ3GeneralPolygonShapeHintConvex EQU    2
  878. TQ3GeneralPolygonContourData RECORD 0
  879. numVertices                 ds.l    1                ; offset: $0 (0)
  880. vertices                 ds.l    1                ; offset: $4 (4)
  881. sizeof                     EQU *                    ; size:   $8 (8)
  882.                         ENDR
  883. TQ3GeneralPolygonData    RECORD 0
  884. numContours                 ds.l    1                ; offset: $0 (0)
  885. contours                 ds.l    1                ; offset: $4 (4)
  886. shapeHint                 ds.l    1                ; offset: $8 (8)
  887. generalPolygonAttributeSet  ds.l 1                ; offset: $C (12)
  888. sizeof                     EQU *                    ; size:   $10 (16)
  889.                         ENDR
  890. ; ******************************************************************************
  891. ; **                                                                             **
  892. ; **                            General polygon Routines                         **
  893. ; **                                                                             **
  894. ; ****************************************************************************
  895.  
  896. ;
  897. ; extern TQ3GeometryObject Q3GeneralPolygon_New(const TQ3GeneralPolygonData *generalPolygonData)
  898. ;
  899.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  900.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_New
  901.     ENDIF
  902.  
  903. ;
  904. ; extern TQ3Status Q3GeneralPolygon_Submit(const TQ3GeneralPolygonData *generalPolygonData, TQ3ViewObject view)
  905. ;
  906.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  907.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_Submit
  908.     ENDIF
  909.  
  910. ;
  911. ; extern TQ3Status Q3GeneralPolygon_SetData(TQ3GeometryObject generalPolygon, const TQ3GeneralPolygonData *generalPolygonData)
  912. ;
  913.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  914.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetData
  915.     ENDIF
  916.  
  917. ;
  918. ; extern TQ3Status Q3GeneralPolygon_GetData(TQ3GeometryObject polygon, TQ3GeneralPolygonData *generalPolygonData)
  919. ;
  920.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  921.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetData
  922.     ENDIF
  923.  
  924. ;
  925. ; extern TQ3Status Q3GeneralPolygon_EmptyData(TQ3GeneralPolygonData *generalPolygonData)
  926. ;
  927.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  928.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_EmptyData
  929.     ENDIF
  930.  
  931. ;
  932. ; extern TQ3Status Q3GeneralPolygon_GetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3Point3D *position)
  933. ;
  934.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  935.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexPosition
  936.     ENDIF
  937.  
  938. ;
  939. ; extern TQ3Status Q3GeneralPolygon_SetVertexPosition(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, const TQ3Point3D *position)
  940. ;
  941.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  942.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexPosition
  943.     ENDIF
  944.  
  945. ;
  946. ; extern TQ3Status Q3GeneralPolygon_GetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet *attributeSet)
  947. ;
  948.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  949.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetVertexAttributeSet
  950.     ENDIF
  951.  
  952. ;
  953. ; extern TQ3Status Q3GeneralPolygon_SetVertexAttributeSet(TQ3GeometryObject generalPolygon, unsigned long contourIndex, unsigned long pointIndex, TQ3AttributeSet attributeSet)
  954. ;
  955.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  956.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetVertexAttributeSet
  957.     ENDIF
  958.  
  959. ;
  960. ; extern TQ3Status Q3GeneralPolygon_SetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint shapeHint)
  961. ;
  962.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  963.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_SetShapeHint
  964.     ENDIF
  965.  
  966. ;
  967. ; extern TQ3Status Q3GeneralPolygon_GetShapeHint(TQ3GeometryObject generalPolygon, TQ3GeneralPolygonShapeHint *shapeHint)
  968. ;
  969.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  970.         IMPORT_CFM_FUNCTION Q3GeneralPolygon_GetShapeHint
  971.     ENDIF
  972.  
  973.  
  974.  
  975.  
  976. ; ******************************************************************************
  977. ; **                                                                             **
  978. ; **                        Line Data Structure Definitions                         **
  979. ; **                                                                             **
  980. ; ****************************************************************************
  981.  
  982. TQ3LineData                RECORD 0
  983. vertices                 ds.b    2 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  984. lineAttributeSet         ds.l    1                ; offset: $20 (32)
  985. sizeof                     EQU *                    ; size:   $24 (36)
  986.                         ENDR
  987. ; ******************************************************************************
  988. ; **                                                                             **
  989. ; **                            Line Routines                                     **
  990. ; **                                                                             **
  991. ; ****************************************************************************
  992.  
  993. ;
  994. ; extern TQ3GeometryObject Q3Line_New(const TQ3LineData *lineData)
  995. ;
  996.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  997.         IMPORT_CFM_FUNCTION Q3Line_New
  998.     ENDIF
  999.  
  1000. ;
  1001. ; extern TQ3Status Q3Line_Submit(const TQ3LineData *lineData, TQ3ViewObject view)
  1002. ;
  1003.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1004.         IMPORT_CFM_FUNCTION Q3Line_Submit
  1005.     ENDIF
  1006.  
  1007. ;
  1008. ; extern TQ3Status Q3Line_GetData(TQ3GeometryObject line, TQ3LineData *lineData)
  1009. ;
  1010.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1011.         IMPORT_CFM_FUNCTION Q3Line_GetData
  1012.     ENDIF
  1013.  
  1014. ;
  1015. ; extern TQ3Status Q3Line_SetData(TQ3GeometryObject line, const TQ3LineData *lineData)
  1016. ;
  1017.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1018.         IMPORT_CFM_FUNCTION Q3Line_SetData
  1019.     ENDIF
  1020.  
  1021. ;
  1022. ; extern TQ3Status Q3Line_GetVertexPosition(TQ3GeometryObject line, unsigned long index, TQ3Point3D *position)
  1023. ;
  1024.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1025.         IMPORT_CFM_FUNCTION Q3Line_GetVertexPosition
  1026.     ENDIF
  1027.  
  1028. ;
  1029. ; extern TQ3Status Q3Line_SetVertexPosition(TQ3GeometryObject line, unsigned long index, const TQ3Point3D *position)
  1030. ;
  1031.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1032.         IMPORT_CFM_FUNCTION Q3Line_SetVertexPosition
  1033.     ENDIF
  1034.  
  1035. ;
  1036. ; extern TQ3Status Q3Line_GetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet *attributeSet)
  1037. ;
  1038.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1039.         IMPORT_CFM_FUNCTION Q3Line_GetVertexAttributeSet
  1040.     ENDIF
  1041.  
  1042. ;
  1043. ; extern TQ3Status Q3Line_SetVertexAttributeSet(TQ3GeometryObject line, unsigned long index, TQ3AttributeSet attributeSet)
  1044. ;
  1045.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1046.         IMPORT_CFM_FUNCTION Q3Line_SetVertexAttributeSet
  1047.     ENDIF
  1048.  
  1049. ;
  1050. ; extern TQ3Status Q3Line_EmptyData(TQ3LineData *lineData)
  1051. ;
  1052.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1053.         IMPORT_CFM_FUNCTION Q3Line_EmptyData
  1054.     ENDIF
  1055.  
  1056.  
  1057.  
  1058.  
  1059. ; ******************************************************************************
  1060. ; **                                                                             **
  1061. ; **                        Marker Data Structure Definitions                     **
  1062. ; **                                                                             **
  1063. ; ****************************************************************************
  1064.  
  1065. TQ3MarkerData            RECORD 0
  1066. location                 ds        TQ3Point3D        ; offset: $0 (0)
  1067. xOffset                     ds.l    1                ; offset: $C (12)
  1068. yOffset                     ds.l    1                ; offset: $10 (16)
  1069. bitmap                     ds        TQ3Bitmap        ; offset: $14 (20)
  1070. markerAttributeSet         ds.l    1                ; offset: $28 (40)
  1071. sizeof                     EQU *                    ; size:   $2C (44)
  1072.                         ENDR
  1073. ; ******************************************************************************
  1074. ; **                                                                             **
  1075. ; **                                Marker Routines                                 **
  1076. ; **                                                                             **
  1077. ; ****************************************************************************
  1078.  
  1079. ;
  1080. ; extern TQ3GeometryObject Q3Marker_New(const TQ3MarkerData *markerData)
  1081. ;
  1082.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1083.         IMPORT_CFM_FUNCTION Q3Marker_New
  1084.     ENDIF
  1085.  
  1086. ;
  1087. ; extern TQ3Status Q3Marker_Submit(const TQ3MarkerData *markerData, TQ3ViewObject view)
  1088. ;
  1089.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1090.         IMPORT_CFM_FUNCTION Q3Marker_Submit
  1091.     ENDIF
  1092.  
  1093. ;
  1094. ; extern TQ3Status Q3Marker_SetData(TQ3GeometryObject geometry, const TQ3MarkerData *markerData)
  1095. ;
  1096.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1097.         IMPORT_CFM_FUNCTION Q3Marker_SetData
  1098.     ENDIF
  1099.  
  1100. ;
  1101. ; extern TQ3Status Q3Marker_GetData(TQ3GeometryObject geometry, TQ3MarkerData *markerData)
  1102. ;
  1103.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1104.         IMPORT_CFM_FUNCTION Q3Marker_GetData
  1105.     ENDIF
  1106.  
  1107. ;
  1108. ; extern TQ3Status Q3Marker_EmptyData(TQ3MarkerData *markerData)
  1109. ;
  1110.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1111.         IMPORT_CFM_FUNCTION Q3Marker_EmptyData
  1112.     ENDIF
  1113.  
  1114. ;
  1115. ; extern TQ3Status Q3Marker_GetPosition(TQ3GeometryObject marker, TQ3Point3D *location)
  1116. ;
  1117.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1118.         IMPORT_CFM_FUNCTION Q3Marker_GetPosition
  1119.     ENDIF
  1120.  
  1121. ;
  1122. ; extern TQ3Status Q3Marker_SetPosition(TQ3GeometryObject marker, const TQ3Point3D *location)
  1123. ;
  1124.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1125.         IMPORT_CFM_FUNCTION Q3Marker_SetPosition
  1126.     ENDIF
  1127.  
  1128. ;
  1129. ; extern TQ3Status Q3Marker_GetXOffset(TQ3GeometryObject marker, long *xOffset)
  1130. ;
  1131.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1132.         IMPORT_CFM_FUNCTION Q3Marker_GetXOffset
  1133.     ENDIF
  1134.  
  1135. ;
  1136. ; extern TQ3Status Q3Marker_SetXOffset(TQ3GeometryObject marker, long xOffset)
  1137. ;
  1138.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1139.         IMPORT_CFM_FUNCTION Q3Marker_SetXOffset
  1140.     ENDIF
  1141.  
  1142. ;
  1143. ; extern TQ3Status Q3Marker_GetYOffset(TQ3GeometryObject marker, long *yOffset)
  1144. ;
  1145.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1146.         IMPORT_CFM_FUNCTION Q3Marker_GetYOffset
  1147.     ENDIF
  1148.  
  1149. ;
  1150. ; extern TQ3Status Q3Marker_SetYOffset(TQ3GeometryObject marker, long yOffset)
  1151. ;
  1152.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1153.         IMPORT_CFM_FUNCTION Q3Marker_SetYOffset
  1154.     ENDIF
  1155.  
  1156. ;
  1157. ; extern TQ3Status Q3Marker_GetBitmap(TQ3GeometryObject marker, TQ3Bitmap *bitmap)
  1158. ;
  1159.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1160.         IMPORT_CFM_FUNCTION Q3Marker_GetBitmap
  1161.     ENDIF
  1162.  
  1163. ;
  1164. ; extern TQ3Status Q3Marker_SetBitmap(TQ3GeometryObject marker, const TQ3Bitmap *bitmap)
  1165. ;
  1166.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1167.         IMPORT_CFM_FUNCTION Q3Marker_SetBitmap
  1168.     ENDIF
  1169.  
  1170.  
  1171.  
  1172.  
  1173. ; ******************************************************************************
  1174. ; **                                                                             **
  1175. ; **                        Mesh Data Structure Definitions                         **
  1176. ; **                                                                             **
  1177. ; ****************************************************************************
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189. ; ******************************************************************************
  1190. ; **                                                                             **
  1191. ; **                            Mesh Routines                                      **
  1192. ; **                                                                             **
  1193. ; ****************************************************************************
  1194.  
  1195. ; *  Constructors
  1196.  
  1197. ;
  1198. ; extern TQ3GeometryObject Q3Mesh_New(void )
  1199. ;
  1200.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1201.         IMPORT_CFM_FUNCTION Q3Mesh_New
  1202.     ENDIF
  1203.  
  1204. ;
  1205. ; extern TQ3MeshVertex Q3Mesh_VertexNew(TQ3GeometryObject mesh, const TQ3Vertex3D *vertex)
  1206. ;
  1207.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1208.         IMPORT_CFM_FUNCTION Q3Mesh_VertexNew
  1209.     ENDIF
  1210.  
  1211. ;
  1212. ; extern TQ3MeshFace Q3Mesh_FaceNew(TQ3GeometryObject mesh, unsigned long numVertices, const TQ3MeshVertex *vertices, TQ3AttributeSet attributeSet)
  1213. ;
  1214.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1215.         IMPORT_CFM_FUNCTION Q3Mesh_FaceNew
  1216.     ENDIF
  1217.  
  1218. ; *  Destructors
  1219.  
  1220. ;
  1221. ; extern TQ3Status Q3Mesh_VertexDelete(TQ3GeometryObject mesh, TQ3MeshVertex vertex)
  1222. ;
  1223.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1224.         IMPORT_CFM_FUNCTION Q3Mesh_VertexDelete
  1225.     ENDIF
  1226.  
  1227. ;
  1228. ; extern TQ3Status Q3Mesh_FaceDelete(TQ3GeometryObject mesh, TQ3MeshFace face)
  1229. ;
  1230.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1231.         IMPORT_CFM_FUNCTION Q3Mesh_FaceDelete
  1232.     ENDIF
  1233.  
  1234. ; * Methods
  1235.  
  1236. ;
  1237. ; extern TQ3Status Q3Mesh_DelayUpdates(TQ3GeometryObject mesh)
  1238. ;
  1239.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1240.         IMPORT_CFM_FUNCTION Q3Mesh_DelayUpdates
  1241.     ENDIF
  1242.  
  1243. ;
  1244. ; extern TQ3Status Q3Mesh_ResumeUpdates(TQ3GeometryObject mesh)
  1245. ;
  1246.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1247.         IMPORT_CFM_FUNCTION Q3Mesh_ResumeUpdates
  1248.     ENDIF
  1249.  
  1250. ;
  1251. ; extern TQ3MeshContour Q3Mesh_FaceToContour(TQ3GeometryObject mesh, TQ3MeshFace containerFace, TQ3MeshFace face)
  1252. ;
  1253.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1254.         IMPORT_CFM_FUNCTION Q3Mesh_FaceToContour
  1255.     ENDIF
  1256.  
  1257. ;
  1258. ; extern TQ3MeshFace Q3Mesh_ContourToFace(TQ3GeometryObject mesh, TQ3MeshContour contour)
  1259. ;
  1260.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1261.         IMPORT_CFM_FUNCTION Q3Mesh_ContourToFace
  1262.     ENDIF
  1263.  
  1264. ; * Mesh
  1265.  
  1266. ;
  1267. ; extern TQ3Status Q3Mesh_GetNumComponents(TQ3GeometryObject mesh, unsigned long *numComponents)
  1268. ;
  1269.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1270.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumComponents
  1271.     ENDIF
  1272.  
  1273. ;
  1274. ; extern TQ3Status Q3Mesh_GetNumEdges(TQ3GeometryObject mesh, unsigned long *numEdges)
  1275. ;
  1276.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1277.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumEdges
  1278.     ENDIF
  1279.  
  1280. ;
  1281. ; extern TQ3Status Q3Mesh_GetNumVertices(TQ3GeometryObject mesh, unsigned long *numVertices)
  1282. ;
  1283.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1284.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumVertices
  1285.     ENDIF
  1286.  
  1287. ;
  1288. ; extern TQ3Status Q3Mesh_GetNumFaces(TQ3GeometryObject mesh, unsigned long *numFaces)
  1289. ;
  1290.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1291.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumFaces
  1292.     ENDIF
  1293.  
  1294. ;
  1295. ; extern TQ3Status Q3Mesh_GetNumCorners(TQ3GeometryObject mesh, unsigned long *numCorners)
  1296. ;
  1297.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1298.         IMPORT_CFM_FUNCTION Q3Mesh_GetNumCorners
  1299.     ENDIF
  1300.  
  1301. ;
  1302. ; extern TQ3Status Q3Mesh_GetOrientable(TQ3GeometryObject mesh, TQ3Boolean *orientable)
  1303. ;
  1304.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1305.         IMPORT_CFM_FUNCTION Q3Mesh_GetOrientable
  1306.     ENDIF
  1307.  
  1308. ; * Component
  1309.  
  1310. ;
  1311. ; extern TQ3Status Q3Mesh_GetComponentNumVertices(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numVertices)
  1312. ;
  1313.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1314.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumVertices
  1315.     ENDIF
  1316.  
  1317. ;
  1318. ; extern TQ3Status Q3Mesh_GetComponentNumEdges(TQ3GeometryObject mesh, TQ3MeshComponent component, unsigned long *numEdges)
  1319. ;
  1320.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1321.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentNumEdges
  1322.     ENDIF
  1323.  
  1324. ;
  1325. ; extern TQ3Status Q3Mesh_GetComponentBoundingBox(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3BoundingBox *boundingBox)
  1326. ;
  1327.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1328.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentBoundingBox
  1329.     ENDIF
  1330.  
  1331. ;
  1332. ; extern TQ3Status Q3Mesh_GetComponentOrientable(TQ3GeometryObject mesh, TQ3MeshComponent component, TQ3Boolean *orientable)
  1333. ;
  1334.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1335.         IMPORT_CFM_FUNCTION Q3Mesh_GetComponentOrientable
  1336.     ENDIF
  1337.  
  1338. ; * Vertex
  1339.  
  1340. ;
  1341. ; extern TQ3Status Q3Mesh_GetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Point3D *coordinates)
  1342. ;
  1343.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1344.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexCoordinates
  1345.     ENDIF
  1346.  
  1347. ;
  1348. ; extern TQ3Status Q3Mesh_GetVertexIndex(TQ3GeometryObject mesh, TQ3MeshVertex vertex, unsigned long *index)
  1349. ;
  1350.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1351.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexIndex
  1352.     ENDIF
  1353.  
  1354. ;
  1355. ; extern TQ3Status Q3Mesh_GetVertexOnBoundary(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3Boolean *onBoundary)
  1356. ;
  1357.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1358.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexOnBoundary
  1359.     ENDIF
  1360.  
  1361. ;
  1362. ; extern TQ3Status Q3Mesh_GetVertexComponent(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshComponent *component)
  1363. ;
  1364.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1365.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexComponent
  1366.     ENDIF
  1367.  
  1368. ;
  1369. ; extern TQ3Status Q3Mesh_GetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet *attributeSet)
  1370. ;
  1371.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1372.         IMPORT_CFM_FUNCTION Q3Mesh_GetVertexAttributeSet
  1373.     ENDIF
  1374.  
  1375.  
  1376. ;
  1377. ; extern TQ3Status Q3Mesh_SetVertexCoordinates(TQ3GeometryObject mesh, TQ3MeshVertex vertex, const TQ3Point3D *coordinates)
  1378. ;
  1379.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1380.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexCoordinates
  1381.     ENDIF
  1382.  
  1383. ;
  1384. ; extern TQ3Status Q3Mesh_SetVertexAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3AttributeSet attributeSet)
  1385. ;
  1386.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1387.         IMPORT_CFM_FUNCTION Q3Mesh_SetVertexAttributeSet
  1388.     ENDIF
  1389.  
  1390.  
  1391. ; * Face
  1392.  
  1393. ;
  1394. ; extern TQ3Status Q3Mesh_GetFaceNumVertices(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numVertices)
  1395. ;
  1396.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1397.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumVertices
  1398.     ENDIF
  1399.  
  1400. ;
  1401. ; extern TQ3Status Q3Mesh_GetFacePlaneEquation(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3PlaneEquation *planeEquation)
  1402. ;
  1403.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1404.         IMPORT_CFM_FUNCTION Q3Mesh_GetFacePlaneEquation
  1405.     ENDIF
  1406.  
  1407. ;
  1408. ; extern TQ3Status Q3Mesh_GetFaceNumContours(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *numContours)
  1409. ;
  1410.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1411.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceNumContours
  1412.     ENDIF
  1413.  
  1414. ;
  1415. ; extern TQ3Status Q3Mesh_GetFaceIndex(TQ3GeometryObject mesh, TQ3MeshFace face, unsigned long *index)
  1416. ;
  1417.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1418.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceIndex
  1419.     ENDIF
  1420.  
  1421. ;
  1422. ; extern TQ3Status Q3Mesh_GetFaceComponent(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3MeshComponent *component)
  1423. ;
  1424.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1425.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceComponent
  1426.     ENDIF
  1427.  
  1428. ;
  1429. ; extern TQ3Status Q3Mesh_GetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1430. ;
  1431.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1432.         IMPORT_CFM_FUNCTION Q3Mesh_GetFaceAttributeSet
  1433.     ENDIF
  1434.  
  1435.  
  1436. ;
  1437. ; extern TQ3Status Q3Mesh_SetFaceAttributeSet(TQ3GeometryObject mesh, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1438. ;
  1439.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1440.         IMPORT_CFM_FUNCTION Q3Mesh_SetFaceAttributeSet
  1441.     ENDIF
  1442.  
  1443. ; * Edge
  1444.  
  1445. ;
  1446. ; extern TQ3Status Q3Mesh_GetEdgeVertices(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshVertex *vertex1, TQ3MeshVertex *vertex2)
  1447. ;
  1448.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1449.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeVertices
  1450.     ENDIF
  1451.  
  1452. ;
  1453. ; extern TQ3Status Q3Mesh_GetEdgeFaces(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshFace *face1, TQ3MeshFace *face2)
  1454. ;
  1455.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1456.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeFaces
  1457.     ENDIF
  1458.  
  1459. ;
  1460. ; extern TQ3Status Q3Mesh_GetEdgeOnBoundary(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3Boolean *onBoundary)
  1461. ;
  1462.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1463.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeOnBoundary
  1464.     ENDIF
  1465.  
  1466. ;
  1467. ; extern TQ3Status Q3Mesh_GetEdgeComponent(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3MeshComponent *component)
  1468. ;
  1469.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1470.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeComponent
  1471.     ENDIF
  1472.  
  1473. ;
  1474. ; extern TQ3Status Q3Mesh_GetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet *attributeSet)
  1475. ;
  1476.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1477.         IMPORT_CFM_FUNCTION Q3Mesh_GetEdgeAttributeSet
  1478.     ENDIF
  1479.  
  1480.  
  1481. ;
  1482. ; extern TQ3Status Q3Mesh_SetEdgeAttributeSet(TQ3GeometryObject mesh, TQ3MeshEdge edge, TQ3AttributeSet attributeSet)
  1483. ;
  1484.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1485.         IMPORT_CFM_FUNCTION Q3Mesh_SetEdgeAttributeSet
  1486.     ENDIF
  1487.  
  1488. ; * Contour
  1489.  
  1490. ;
  1491. ; extern TQ3Status Q3Mesh_GetContourFace(TQ3GeometryObject mesh, TQ3MeshContour contour, TQ3MeshFace *face)
  1492. ;
  1493.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1494.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourFace
  1495.     ENDIF
  1496.  
  1497. ;
  1498. ; extern TQ3Status Q3Mesh_GetContourNumVertices(TQ3GeometryObject mesh, TQ3MeshContour contour, unsigned long *numVertices)
  1499. ;
  1500.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1501.         IMPORT_CFM_FUNCTION Q3Mesh_GetContourNumVertices
  1502.     ENDIF
  1503.  
  1504. ; * Corner
  1505.  
  1506. ;
  1507. ; extern TQ3Status Q3Mesh_GetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet *attributeSet)
  1508. ;
  1509.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1510.         IMPORT_CFM_FUNCTION Q3Mesh_GetCornerAttributeSet
  1511.     ENDIF
  1512.  
  1513. ;
  1514. ; extern TQ3Status Q3Mesh_SetCornerAttributeSet(TQ3GeometryObject mesh, TQ3MeshVertex vertex, TQ3MeshFace face, TQ3AttributeSet attributeSet)
  1515. ;
  1516.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1517.         IMPORT_CFM_FUNCTION Q3Mesh_SetCornerAttributeSet
  1518.     ENDIF
  1519.  
  1520.  
  1521. ; * Public Mesh Iterators
  1522.  
  1523. TQ3MeshIterator            RECORD 0
  1524. var1                     ds.l    1                ; offset: $0 (0)
  1525. var2                     ds.l    1                ; offset: $4 (4)
  1526. var3                     ds.l    1                ; offset: $8 (8)
  1527. field1                     ds.l    1                ; offset: $C (12)
  1528. field2                     ds.b    4                ; offset: $10 (16)
  1529. sizeof                     EQU *                    ; size:   $14 (20)
  1530.                         ENDR
  1531. ;
  1532. ; extern TQ3MeshComponent Q3Mesh_FirstMeshComponent(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1533. ;
  1534.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1535.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshComponent
  1536.     ENDIF
  1537.  
  1538. ;
  1539. ; extern TQ3MeshComponent Q3Mesh_NextMeshComponent(TQ3MeshIterator *iterator)
  1540. ;
  1541.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1542.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshComponent
  1543.     ENDIF
  1544.  
  1545. ;
  1546. ; extern TQ3MeshVertex Q3Mesh_FirstComponentVertex(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1547. ;
  1548.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1549.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentVertex
  1550.     ENDIF
  1551.  
  1552. ;
  1553. ; extern TQ3MeshVertex Q3Mesh_NextComponentVertex(TQ3MeshIterator *iterator)
  1554. ;
  1555.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1556.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentVertex
  1557.     ENDIF
  1558.  
  1559. ;
  1560. ; extern TQ3MeshEdge Q3Mesh_FirstComponentEdge(TQ3MeshComponent component, TQ3MeshIterator *iterator)
  1561. ;
  1562.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1563.         IMPORT_CFM_FUNCTION Q3Mesh_FirstComponentEdge
  1564.     ENDIF
  1565.  
  1566. ;
  1567. ; extern TQ3MeshEdge Q3Mesh_NextComponentEdge(TQ3MeshIterator *iterator)
  1568. ;
  1569.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1570.         IMPORT_CFM_FUNCTION Q3Mesh_NextComponentEdge
  1571.     ENDIF
  1572.  
  1573. ;
  1574. ; extern TQ3MeshVertex Q3Mesh_FirstMeshVertex(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1575. ;
  1576.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1577.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshVertex
  1578.     ENDIF
  1579.  
  1580. ;
  1581. ; extern TQ3MeshVertex Q3Mesh_NextMeshVertex(TQ3MeshIterator *iterator)
  1582. ;
  1583.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1584.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshVertex
  1585.     ENDIF
  1586.  
  1587. ;
  1588. ; extern TQ3MeshFace Q3Mesh_FirstMeshFace(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1589. ;
  1590.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1591.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshFace
  1592.     ENDIF
  1593.  
  1594. ;
  1595. ; extern TQ3MeshFace Q3Mesh_NextMeshFace(TQ3MeshIterator *iterator)
  1596. ;
  1597.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1598.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshFace
  1599.     ENDIF
  1600.  
  1601. ;
  1602. ; extern TQ3MeshEdge Q3Mesh_FirstMeshEdge(TQ3GeometryObject mesh, TQ3MeshIterator *iterator)
  1603. ;
  1604.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1605.         IMPORT_CFM_FUNCTION Q3Mesh_FirstMeshEdge
  1606.     ENDIF
  1607.  
  1608. ;
  1609. ; extern TQ3MeshEdge Q3Mesh_NextMeshEdge(TQ3MeshIterator *iterator)
  1610. ;
  1611.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1612.         IMPORT_CFM_FUNCTION Q3Mesh_NextMeshEdge
  1613.     ENDIF
  1614.  
  1615. ;
  1616. ; extern TQ3MeshEdge Q3Mesh_FirstVertexEdge(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1617. ;
  1618.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1619.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexEdge
  1620.     ENDIF
  1621.  
  1622. ;
  1623. ; extern TQ3MeshEdge Q3Mesh_NextVertexEdge(TQ3MeshIterator *iterator)
  1624. ;
  1625.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1626.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexEdge
  1627.     ENDIF
  1628.  
  1629. ;
  1630. ; extern TQ3MeshVertex Q3Mesh_FirstVertexVertex(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1631. ;
  1632.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1633.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexVertex
  1634.     ENDIF
  1635.  
  1636. ;
  1637. ; extern TQ3MeshVertex Q3Mesh_NextVertexVertex(TQ3MeshIterator *iterator)
  1638. ;
  1639.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1640.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexVertex
  1641.     ENDIF
  1642.  
  1643. ;
  1644. ; extern TQ3MeshFace Q3Mesh_FirstVertexFace(TQ3MeshVertex vertex, TQ3MeshIterator *iterator)
  1645. ;
  1646.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1647.         IMPORT_CFM_FUNCTION Q3Mesh_FirstVertexFace
  1648.     ENDIF
  1649.  
  1650. ;
  1651. ; extern TQ3MeshFace Q3Mesh_NextVertexFace(TQ3MeshIterator *iterator)
  1652. ;
  1653.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1654.         IMPORT_CFM_FUNCTION Q3Mesh_NextVertexFace
  1655.     ENDIF
  1656.  
  1657. ;
  1658. ; extern TQ3MeshEdge Q3Mesh_FirstFaceEdge(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1659. ;
  1660.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1661.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceEdge
  1662.     ENDIF
  1663.  
  1664. ;
  1665. ; extern TQ3MeshEdge Q3Mesh_NextFaceEdge(TQ3MeshIterator *iterator)
  1666. ;
  1667.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1668.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceEdge
  1669.     ENDIF
  1670.  
  1671. ;
  1672. ; extern TQ3MeshVertex Q3Mesh_FirstFaceVertex(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1673. ;
  1674.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1675.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceVertex
  1676.     ENDIF
  1677.  
  1678. ;
  1679. ; extern TQ3MeshVertex Q3Mesh_NextFaceVertex(TQ3MeshIterator *iterator)
  1680. ;
  1681.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1682.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceVertex
  1683.     ENDIF
  1684.  
  1685. ;
  1686. ; extern TQ3MeshFace Q3Mesh_FirstFaceFace(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1687. ;
  1688.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1689.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceFace
  1690.     ENDIF
  1691.  
  1692. ;
  1693. ; extern TQ3MeshFace Q3Mesh_NextFaceFace(TQ3MeshIterator *iterator)
  1694. ;
  1695.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1696.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceFace
  1697.     ENDIF
  1698.  
  1699. ;
  1700. ; extern TQ3MeshContour Q3Mesh_FirstFaceContour(TQ3MeshFace face, TQ3MeshIterator *iterator)
  1701. ;
  1702.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1703.         IMPORT_CFM_FUNCTION Q3Mesh_FirstFaceContour
  1704.     ENDIF
  1705.  
  1706. ;
  1707. ; extern TQ3MeshContour Q3Mesh_NextFaceContour(TQ3MeshIterator *iterator)
  1708. ;
  1709.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1710.         IMPORT_CFM_FUNCTION Q3Mesh_NextFaceContour
  1711.     ENDIF
  1712.  
  1713. ;
  1714. ; extern TQ3MeshEdge Q3Mesh_FirstContourEdge(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1715. ;
  1716.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1717.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourEdge
  1718.     ENDIF
  1719.  
  1720. ;
  1721. ; extern TQ3MeshEdge Q3Mesh_NextContourEdge(TQ3MeshIterator *iterator)
  1722. ;
  1723.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1724.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourEdge
  1725.     ENDIF
  1726.  
  1727. ;
  1728. ; extern TQ3MeshVertex Q3Mesh_FirstContourVertex(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1729. ;
  1730.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1731.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourVertex
  1732.     ENDIF
  1733.  
  1734. ;
  1735. ; extern TQ3MeshVertex Q3Mesh_NextContourVertex(TQ3MeshIterator *iterator)
  1736. ;
  1737.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1738.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourVertex
  1739.     ENDIF
  1740.  
  1741. ;
  1742. ; extern TQ3MeshFace Q3Mesh_FirstContourFace(TQ3MeshContour contour, TQ3MeshIterator *iterator)
  1743. ;
  1744.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1745.         IMPORT_CFM_FUNCTION Q3Mesh_FirstContourFace
  1746.     ENDIF
  1747.  
  1748. ;
  1749. ; extern TQ3MeshFace Q3Mesh_NextContourFace(TQ3MeshIterator *iterator)
  1750. ;
  1751.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1752.         IMPORT_CFM_FUNCTION Q3Mesh_NextContourFace
  1753.     ENDIF
  1754.  
  1755.  
  1756.  
  1757. ; ******************************************************************************
  1758. ; **                                                                             **
  1759. ; **                            Maximum order for NURB Curves                     **
  1760. ; **                                                                             **
  1761. ; ****************************************************************************
  1762.  
  1763.  
  1764. ; ******************************************************************************
  1765. ; **                                                                             **
  1766. ; **                        NURB Data Structure Definitions                         **
  1767. ; **                                                                             **
  1768. ; ****************************************************************************
  1769.  
  1770. TQ3NURBCurveData        RECORD 0
  1771. order                     ds.l    1                ; offset: $0 (0)
  1772. numPoints                 ds.l    1                ; offset: $4 (4)
  1773. controlPoints             ds.l    1                ; offset: $8 (8)
  1774. knots                     ds.l    1                ; offset: $C (12)
  1775. curveAttributeSet         ds.l    1                ; offset: $10 (16)
  1776. sizeof                     EQU *                    ; size:   $14 (20)
  1777.                         ENDR
  1778. ; ******************************************************************************
  1779. ; **                                                                             **
  1780. ; **                                NURB Curve Routines                             **
  1781. ; **                                                                             **
  1782. ; ****************************************************************************
  1783.  
  1784. ;
  1785. ; extern TQ3GeometryObject Q3NURBCurve_New(const TQ3NURBCurveData *curveData)
  1786. ;
  1787.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1788.         IMPORT_CFM_FUNCTION Q3NURBCurve_New
  1789.     ENDIF
  1790.  
  1791. ;
  1792. ; extern TQ3Status Q3NURBCurve_Submit(const TQ3NURBCurveData *curveData, TQ3ViewObject view)
  1793. ;
  1794.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1795.         IMPORT_CFM_FUNCTION Q3NURBCurve_Submit
  1796.     ENDIF
  1797.  
  1798. ;
  1799. ; extern TQ3Status Q3NURBCurve_SetData(TQ3GeometryObject curve, const TQ3NURBCurveData *nurbCurveData)
  1800. ;
  1801.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1802.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetData
  1803.     ENDIF
  1804.  
  1805. ;
  1806. ; extern TQ3Status Q3NURBCurve_GetData(TQ3GeometryObject curve, TQ3NURBCurveData *nurbCurveData)
  1807. ;
  1808.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1809.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetData
  1810.     ENDIF
  1811.  
  1812. ;
  1813. ; extern TQ3Status Q3NURBCurve_EmptyData(TQ3NURBCurveData *nurbCurveData)
  1814. ;
  1815.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1816.         IMPORT_CFM_FUNCTION Q3NURBCurve_EmptyData
  1817.     ENDIF
  1818.  
  1819. ;
  1820. ; extern TQ3Status Q3NURBCurve_SetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, const TQ3RationalPoint4D *point4D)
  1821. ;
  1822.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1823.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetControlPoint
  1824.     ENDIF
  1825.  
  1826. ;
  1827. ; extern TQ3Status Q3NURBCurve_GetControlPoint(TQ3GeometryObject curve, unsigned long pointIndex, TQ3RationalPoint4D *point4D)
  1828. ;
  1829.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1830.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetControlPoint
  1831.     ENDIF
  1832.  
  1833. ;
  1834. ; extern TQ3Status Q3NURBCurve_SetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float knotValue)
  1835. ;
  1836.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1837.         IMPORT_CFM_FUNCTION Q3NURBCurve_SetKnot
  1838.     ENDIF
  1839.  
  1840. ;
  1841. ; extern TQ3Status Q3NURBCurve_GetKnot(TQ3GeometryObject curve, unsigned long knotIndex, float *knotValue)
  1842. ;
  1843.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1844.         IMPORT_CFM_FUNCTION Q3NURBCurve_GetKnot
  1845.     ENDIF
  1846.  
  1847.  
  1848. ; ******************************************************************************
  1849. ; **                                                                             **
  1850. ; **                            Maximum NURB Patch Order                         **
  1851. ; **                                                                             **
  1852. ; ****************************************************************************
  1853.  
  1854. ; ******************************************************************************
  1855. ; **                                                                             **
  1856. ; **                        NURB Patch Data Structure Definitions                 **
  1857. ; **                                                                             **
  1858. ; ****************************************************************************
  1859.  
  1860. TQ3NURBPatchTrimCurveData RECORD 0
  1861. order                     ds.l    1                ; offset: $0 (0)
  1862. numPoints                 ds.l    1                ; offset: $4 (4)
  1863. controlPoints             ds.l    1                ; offset: $8 (8)
  1864. knots                     ds.l    1                ; offset: $C (12)
  1865. sizeof                     EQU *                    ; size:   $10 (16)
  1866.                         ENDR
  1867. TQ3NURBPatchTrimLoopData RECORD 0
  1868. numTrimCurves             ds.l    1                ; offset: $0 (0)
  1869. trimCurves                 ds.l    1                ; offset: $4 (4)
  1870. sizeof                     EQU *                    ; size:   $8 (8)
  1871.                         ENDR
  1872. TQ3NURBPatchData        RECORD 0
  1873. uOrder                     ds.l    1                ; offset: $0 (0)
  1874. vOrder                     ds.l    1                ; offset: $4 (4)
  1875. numRows                     ds.l    1                ; offset: $8 (8)
  1876. numColumns                 ds.l    1                ; offset: $C (12)
  1877. controlPoints             ds.l    1                ; offset: $10 (16)
  1878. uKnots                     ds.l    1                ; offset: $14 (20)
  1879. vKnots                     ds.l    1                ; offset: $18 (24)
  1880. numTrimLoops             ds.l    1                ; offset: $1C (28)
  1881. trimLoops                 ds.l    1                ; offset: $20 (32)
  1882. patchAttributeSet         ds.l    1                ; offset: $24 (36)
  1883. sizeof                     EQU *                    ; size:   $28 (40)
  1884.                         ENDR
  1885. ; ******************************************************************************
  1886. ; **                                                                             **
  1887. ; **                                NURB Patch Routines                             **
  1888. ; **                                                                             **
  1889. ; ****************************************************************************
  1890.  
  1891. ;
  1892. ; extern TQ3GeometryObject Q3NURBPatch_New(const TQ3NURBPatchData *nurbPatchData)
  1893. ;
  1894.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1895.         IMPORT_CFM_FUNCTION Q3NURBPatch_New
  1896.     ENDIF
  1897.  
  1898. ;
  1899. ; extern TQ3Status Q3NURBPatch_Submit(const TQ3NURBPatchData *nurbPatchData, TQ3ViewObject view)
  1900. ;
  1901.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1902.         IMPORT_CFM_FUNCTION Q3NURBPatch_Submit
  1903.     ENDIF
  1904.  
  1905. ;
  1906. ; extern TQ3Status Q3NURBPatch_SetData(TQ3GeometryObject nurbPatch, const TQ3NURBPatchData *nurbPatchData)
  1907. ;
  1908.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1909.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetData
  1910.     ENDIF
  1911.  
  1912. ;
  1913. ; extern TQ3Status Q3NURBPatch_GetData(TQ3GeometryObject nurbPatch, TQ3NURBPatchData *nurbPatchData)
  1914. ;
  1915.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1916.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetData
  1917.     ENDIF
  1918.  
  1919. ;
  1920. ; extern TQ3Status Q3NURBPatch_SetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, const TQ3RationalPoint4D *point4D)
  1921. ;
  1922.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1923.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetControlPoint
  1924.     ENDIF
  1925.  
  1926. ;
  1927. ; extern TQ3Status Q3NURBPatch_GetControlPoint(TQ3GeometryObject nurbPatch, unsigned long rowIndex, unsigned long columnIndex, TQ3RationalPoint4D *point4D)
  1928. ;
  1929.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1930.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetControlPoint
  1931.     ENDIF
  1932.  
  1933. ;
  1934. ; extern TQ3Status Q3NURBPatch_SetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1935. ;
  1936.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1937.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetUKnot
  1938.     ENDIF
  1939.  
  1940. ;
  1941. ; extern TQ3Status Q3NURBPatch_SetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float knotValue)
  1942. ;
  1943.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1944.         IMPORT_CFM_FUNCTION Q3NURBPatch_SetVKnot
  1945.     ENDIF
  1946.  
  1947. ;
  1948. ; extern TQ3Status Q3NURBPatch_GetUKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1949. ;
  1950.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1951.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetUKnot
  1952.     ENDIF
  1953.  
  1954. ;
  1955. ; extern TQ3Status Q3NURBPatch_GetVKnot(TQ3GeometryObject nurbPatch, unsigned long knotIndex, float *knotValue)
  1956. ;
  1957.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1958.         IMPORT_CFM_FUNCTION Q3NURBPatch_GetVKnot
  1959.     ENDIF
  1960.  
  1961. ;
  1962. ; extern TQ3Status Q3NURBPatch_EmptyData(TQ3NURBPatchData *nurbPatchData)
  1963. ;
  1964.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1965.         IMPORT_CFM_FUNCTION Q3NURBPatch_EmptyData
  1966.     ENDIF
  1967.  
  1968.  
  1969.  
  1970.  
  1971. ; ******************************************************************************
  1972. ; **                                                                             **
  1973. ; **                        Pixmap Marker Data Structure Definitions             **
  1974. ; **                                                                             **
  1975. ; ****************************************************************************
  1976.  
  1977. TQ3PixmapMarkerData        RECORD 0
  1978. position                 ds        TQ3Point3D        ; offset: $0 (0)
  1979. xOffset                     ds.l    1                ; offset: $C (12)
  1980. yOffset                     ds.l    1                ; offset: $10 (16)
  1981. pixmap                     ds        TQ3StoragePixmap ; offset: $14 (20)
  1982. pixmapMarkerAttributeSet  ds.l    1                ; offset: $34 (52)
  1983. sizeof                     EQU *                    ; size:   $38 (56)
  1984.                         ENDR
  1985. ; ******************************************************************************
  1986. ; **                                                                             **
  1987. ; **                                Pixmap Marker Routines                         **
  1988. ; **                                                                             **
  1989. ; ****************************************************************************
  1990.  
  1991. ;
  1992. ; extern TQ3GeometryObject Q3PixmapMarker_New(const TQ3PixmapMarkerData *pixmapMarkerData)
  1993. ;
  1994.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  1995.         IMPORT_CFM_FUNCTION Q3PixmapMarker_New
  1996.     ENDIF
  1997.  
  1998. ;
  1999. ; extern TQ3Status Q3PixmapMarker_Submit(const TQ3PixmapMarkerData *pixmapMarkerData, TQ3ViewObject view)
  2000. ;
  2001.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2002.         IMPORT_CFM_FUNCTION Q3PixmapMarker_Submit
  2003.     ENDIF
  2004.  
  2005. ;
  2006. ; extern TQ3Status Q3PixmapMarker_SetData(TQ3GeometryObject geometry, const TQ3PixmapMarkerData *pixmapMarkerData)
  2007. ;
  2008.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2009.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetData
  2010.     ENDIF
  2011.  
  2012. ;
  2013. ; extern TQ3Status Q3PixmapMarker_GetData(TQ3GeometryObject geometry, TQ3PixmapMarkerData *pixmapMarkerData)
  2014. ;
  2015.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2016.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetData
  2017.     ENDIF
  2018.  
  2019. ;
  2020. ; extern TQ3Status Q3PixmapMarker_EmptyData(TQ3PixmapMarkerData *pixmapMarkerData)
  2021. ;
  2022.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2023.         IMPORT_CFM_FUNCTION Q3PixmapMarker_EmptyData
  2024.     ENDIF
  2025.  
  2026. ;
  2027. ; extern TQ3Status Q3PixmapMarker_GetPosition(TQ3GeometryObject pixmapMarker, TQ3Point3D *position)
  2028. ;
  2029.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2030.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPosition
  2031.     ENDIF
  2032.  
  2033. ;
  2034. ; extern TQ3Status Q3PixmapMarker_SetPosition(TQ3GeometryObject pixmapMarker, const TQ3Point3D *position)
  2035. ;
  2036.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2037.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPosition
  2038.     ENDIF
  2039.  
  2040. ;
  2041. ; extern TQ3Status Q3PixmapMarker_GetXOffset(TQ3GeometryObject pixmapMarker, long *xOffset)
  2042. ;
  2043.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2044.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetXOffset
  2045.     ENDIF
  2046.  
  2047. ;
  2048. ; extern TQ3Status Q3PixmapMarker_SetXOffset(TQ3GeometryObject pixmapMarker, long xOffset)
  2049. ;
  2050.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2051.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetXOffset
  2052.     ENDIF
  2053.  
  2054. ;
  2055. ; extern TQ3Status Q3PixmapMarker_GetYOffset(TQ3GeometryObject pixmapMarker, long *yOffset)
  2056. ;
  2057.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2058.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetYOffset
  2059.     ENDIF
  2060.  
  2061. ;
  2062. ; extern TQ3Status Q3PixmapMarker_SetYOffset(TQ3GeometryObject pixmapMarker, long yOffset)
  2063. ;
  2064.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2065.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetYOffset
  2066.     ENDIF
  2067.  
  2068. ;
  2069. ; extern TQ3Status Q3PixmapMarker_GetPixmap(TQ3GeometryObject pixmapMarker, TQ3StoragePixmap *pixmap)
  2070. ;
  2071.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2072.         IMPORT_CFM_FUNCTION Q3PixmapMarker_GetPixmap
  2073.     ENDIF
  2074.  
  2075. ;
  2076. ; extern TQ3Status Q3PixmapMarker_SetPixmap(TQ3GeometryObject pixmapMarker, const TQ3StoragePixmap *pixmap)
  2077. ;
  2078.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2079.         IMPORT_CFM_FUNCTION Q3PixmapMarker_SetPixmap
  2080.     ENDIF
  2081.  
  2082.  
  2083.  
  2084.  
  2085. ; ******************************************************************************
  2086. ; **                                                                             **
  2087. ; **                        Point Data Structure Definitions                     **
  2088. ; **                                                                             **
  2089. ; ****************************************************************************
  2090.  
  2091. TQ3PointData            RECORD 0
  2092. point                     ds        TQ3Point3D        ; offset: $0 (0)
  2093. pointAttributeSet         ds.l    1                ; offset: $C (12)
  2094. sizeof                     EQU *                    ; size:   $10 (16)
  2095.                         ENDR
  2096. ; ******************************************************************************
  2097. ; **                                                                             **
  2098. ; **                                Point Routines                                 **
  2099. ; **                                                                             **
  2100. ; ****************************************************************************
  2101.  
  2102. ;
  2103. ; extern TQ3GeometryObject Q3Point_New(const TQ3PointData *pointData)
  2104. ;
  2105.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2106.         IMPORT_CFM_FUNCTION Q3Point_New
  2107.     ENDIF
  2108.  
  2109. ;
  2110. ; extern TQ3Status Q3Point_Submit(const TQ3PointData *pointData, TQ3ViewObject view)
  2111. ;
  2112.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2113.         IMPORT_CFM_FUNCTION Q3Point_Submit
  2114.     ENDIF
  2115.  
  2116. ;
  2117. ; extern TQ3Status Q3Point_GetData(TQ3GeometryObject point, TQ3PointData *pointData)
  2118. ;
  2119.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2120.         IMPORT_CFM_FUNCTION Q3Point_GetData
  2121.     ENDIF
  2122.  
  2123. ;
  2124. ; extern TQ3Status Q3Point_SetData(TQ3GeometryObject point, const TQ3PointData *pointData)
  2125. ;
  2126.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2127.         IMPORT_CFM_FUNCTION Q3Point_SetData
  2128.     ENDIF
  2129.  
  2130. ;
  2131. ; extern TQ3Status Q3Point_EmptyData(TQ3PointData *pointData)
  2132. ;
  2133.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2134.         IMPORT_CFM_FUNCTION Q3Point_EmptyData
  2135.     ENDIF
  2136.  
  2137. ;
  2138. ; extern TQ3Status Q3Point_SetPosition(TQ3GeometryObject point, const TQ3Point3D *position)
  2139. ;
  2140.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2141.         IMPORT_CFM_FUNCTION Q3Point_SetPosition
  2142.     ENDIF
  2143.  
  2144. ;
  2145. ; extern TQ3Status Q3Point_GetPosition(TQ3GeometryObject point, TQ3Point3D *position)
  2146. ;
  2147.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2148.         IMPORT_CFM_FUNCTION Q3Point_GetPosition
  2149.     ENDIF
  2150.  
  2151.  
  2152.  
  2153.  
  2154. ; ******************************************************************************
  2155. ; **                                                                             **
  2156. ; **                        Polygon Data Structure Definitions                     **
  2157. ; **                                                                             **
  2158. ; ****************************************************************************
  2159.  
  2160. TQ3PolygonData            RECORD 0
  2161. numVertices                 ds.l    1                ; offset: $0 (0)
  2162. vertices                 ds.l    1                ; offset: $4 (4)
  2163. polygonAttributeSet         ds.l    1                ; offset: $8 (8)
  2164. sizeof                     EQU *                    ; size:   $C (12)
  2165.                         ENDR
  2166. ; ******************************************************************************
  2167. ; **                                                                             **
  2168. ; **                            Polygon Routines                                 **
  2169. ; **                                                                             **
  2170. ; ****************************************************************************
  2171.  
  2172. ;
  2173. ; extern TQ3GeometryObject Q3Polygon_New(const TQ3PolygonData *polygonData)
  2174. ;
  2175.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2176.         IMPORT_CFM_FUNCTION Q3Polygon_New
  2177.     ENDIF
  2178.  
  2179. ;
  2180. ; extern TQ3Status Q3Polygon_Submit(const TQ3PolygonData *polygonData, TQ3ViewObject view)
  2181. ;
  2182.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2183.         IMPORT_CFM_FUNCTION Q3Polygon_Submit
  2184.     ENDIF
  2185.  
  2186. ;
  2187. ; extern TQ3Status Q3Polygon_SetData(TQ3GeometryObject polygon, const TQ3PolygonData *polygonData)
  2188. ;
  2189.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2190.         IMPORT_CFM_FUNCTION Q3Polygon_SetData
  2191.     ENDIF
  2192.  
  2193. ;
  2194. ; extern TQ3Status Q3Polygon_GetData(TQ3GeometryObject polygon, TQ3PolygonData *polygonData)
  2195. ;
  2196.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2197.         IMPORT_CFM_FUNCTION Q3Polygon_GetData
  2198.     ENDIF
  2199.  
  2200. ;
  2201. ; extern TQ3Status Q3Polygon_EmptyData(TQ3PolygonData *polygonData)
  2202. ;
  2203.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2204.         IMPORT_CFM_FUNCTION Q3Polygon_EmptyData
  2205.     ENDIF
  2206.  
  2207. ;
  2208. ; extern TQ3Status Q3Polygon_GetVertexPosition(TQ3GeometryObject polygon, unsigned long index, TQ3Point3D *point)
  2209. ;
  2210.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2211.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexPosition
  2212.     ENDIF
  2213.  
  2214. ;
  2215. ; extern TQ3Status Q3Polygon_SetVertexPosition(TQ3GeometryObject polygon, unsigned long index, const TQ3Point3D *point)
  2216. ;
  2217.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2218.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexPosition
  2219.     ENDIF
  2220.  
  2221. ;
  2222. ; extern TQ3Status Q3Polygon_GetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet *attributeSet)
  2223. ;
  2224.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2225.         IMPORT_CFM_FUNCTION Q3Polygon_GetVertexAttributeSet
  2226.     ENDIF
  2227.  
  2228. ;
  2229. ; extern TQ3Status Q3Polygon_SetVertexAttributeSet(TQ3GeometryObject polygon, unsigned long index, TQ3AttributeSet attributeSet)
  2230. ;
  2231.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2232.         IMPORT_CFM_FUNCTION Q3Polygon_SetVertexAttributeSet
  2233.     ENDIF
  2234.  
  2235.  
  2236.  
  2237.  
  2238. ; ******************************************************************************
  2239. ; **                                                                             **
  2240. ; **                        Polyhedron Data Structure Definitions                 **
  2241. ; **                                                                             **
  2242. ; ****************************************************************************
  2243.  
  2244.  
  2245. ; typedef long                            TQ3PolyhedronEdgeMasks
  2246. kQ3PolyhedronEdgeNone            EQU        0
  2247. kQ3PolyhedronEdge01                EQU        $01
  2248. kQ3PolyhedronEdge12                EQU        $02
  2249. kQ3PolyhedronEdge20                EQU        $04
  2250. kQ3PolyhedronEdgeAll            EQU        $07
  2251. ; typedef unsigned long                 TQ3PolyhedronEdge
  2252.  
  2253. TQ3PolyhedronEdgeData    RECORD 0
  2254. vertexIndices             ds.l    2                ; offset: $0 (0)
  2255. triangleIndices             ds.l    2                ; offset: $8 (8)
  2256. edgeAttributeSet         ds.l    1                ; offset: $10 (16)
  2257. sizeof                     EQU *                    ; size:   $14 (20)
  2258.                         ENDR
  2259. TQ3PolyhedronTriangleData RECORD 0
  2260. vertexIndices             ds.l    3                ; offset: $0 (0)
  2261. edgeFlag                 ds.l    1                ; offset: $C (12)
  2262. triangleAttributeSet     ds.l    1                ; offset: $10 (16)
  2263. sizeof                     EQU *                    ; size:   $14 (20)
  2264.                         ENDR
  2265. TQ3PolyhedronData        RECORD 0
  2266. numVertices                 ds.l    1                ; offset: $0 (0)
  2267. vertices                 ds.l    1                ; offset: $4 (4)
  2268. numEdges                 ds.l    1                ; offset: $8 (8)
  2269. edges                     ds.l    1                ; offset: $C (12)
  2270. numTriangles             ds.l    1                ; offset: $10 (16)
  2271. triangles                 ds.l    1                ; offset: $14 (20)
  2272. polyhedronAttributeSet     ds.l    1                ; offset: $18 (24)
  2273. sizeof                     EQU *                    ; size:   $1C (28)
  2274.                         ENDR
  2275. ; ******************************************************************************
  2276. ; **                                                                             **
  2277. ; **                                Polyhedron Routines                             **
  2278. ; **                                                                             **
  2279. ; ****************************************************************************
  2280.  
  2281. ;
  2282. ; extern TQ3GeometryObject Q3Polyhedron_New(const TQ3PolyhedronData *polyhedronData)
  2283. ;
  2284.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2285.         IMPORT_CFM_FUNCTION Q3Polyhedron_New
  2286.     ENDIF
  2287.  
  2288. ;
  2289. ; extern TQ3Status Q3Polyhedron_Submit(const TQ3PolyhedronData *polyhedronData, TQ3ViewObject view)
  2290. ;
  2291.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2292.         IMPORT_CFM_FUNCTION Q3Polyhedron_Submit
  2293.     ENDIF
  2294.  
  2295. ;
  2296. ; extern TQ3Status Q3Polyhedron_SetData(TQ3GeometryObject polyhedron, const TQ3PolyhedronData *polyhedronData)
  2297. ;
  2298.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2299.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetData
  2300.     ENDIF
  2301.  
  2302. ;
  2303. ; extern TQ3Status Q3Polyhedron_GetData(TQ3GeometryObject polyhedron, TQ3PolyhedronData *polyhedronData)
  2304. ;
  2305.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2306.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetData
  2307.     ENDIF
  2308.  
  2309. ;
  2310. ; extern TQ3Status Q3Polyhedron_EmptyData(TQ3PolyhedronData *polyhedronData)
  2311. ;
  2312.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2313.         IMPORT_CFM_FUNCTION Q3Polyhedron_EmptyData
  2314.     ENDIF
  2315.  
  2316. ;
  2317. ; extern TQ3Status Q3Polyhedron_SetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, const TQ3Point3D *point)
  2318. ;
  2319.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2320.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexPosition
  2321.     ENDIF
  2322.  
  2323. ;
  2324. ; extern TQ3Status Q3Polyhedron_GetVertexPosition(TQ3GeometryObject polyhedron, unsigned long index, TQ3Point3D *point)
  2325. ;
  2326.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2327.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexPosition
  2328.     ENDIF
  2329.  
  2330. ;
  2331. ; extern TQ3Status Q3Polyhedron_SetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet attributeSet)
  2332. ;
  2333.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2334.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetVertexAttributeSet
  2335.     ENDIF
  2336.  
  2337. ;
  2338. ; extern TQ3Status Q3Polyhedron_GetVertexAttributeSet(TQ3GeometryObject polyhedron, unsigned long index, TQ3AttributeSet *attributeSet)
  2339. ;
  2340.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2341.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetVertexAttributeSet
  2342.     ENDIF
  2343.  
  2344. ;
  2345. ; extern TQ3Status Q3Polyhedron_GetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, TQ3PolyhedronTriangleData *triangleData)
  2346. ;
  2347.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2348.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetTriangleData
  2349.     ENDIF
  2350.  
  2351. ;
  2352. ; extern TQ3Status Q3Polyhedron_SetTriangleData(TQ3GeometryObject polyhedron, unsigned long triangleIndex, const TQ3PolyhedronTriangleData *triangleData)
  2353. ;
  2354.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2355.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetTriangleData
  2356.     ENDIF
  2357.  
  2358. ;
  2359. ; extern TQ3Status Q3Polyhedron_GetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, TQ3PolyhedronEdgeData *edgeData)
  2360. ;
  2361.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2362.         IMPORT_CFM_FUNCTION Q3Polyhedron_GetEdgeData
  2363.     ENDIF
  2364.  
  2365. ;
  2366. ; extern TQ3Status Q3Polyhedron_SetEdgeData(TQ3GeometryObject polyhedron, unsigned long edgeIndex, const TQ3PolyhedronEdgeData *edgeData)
  2367. ;
  2368.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2369.         IMPORT_CFM_FUNCTION Q3Polyhedron_SetEdgeData
  2370.     ENDIF
  2371.  
  2372.  
  2373.  
  2374.  
  2375. ; ******************************************************************************
  2376. ; **                                                                             **
  2377. ; **                        PolyLine Data Structure Definitions                     **
  2378. ; **                                                                             **
  2379. ; ****************************************************************************
  2380.  
  2381. TQ3PolyLineData            RECORD 0
  2382. numVertices                 ds.l    1                ; offset: $0 (0)
  2383. vertices                 ds.l    1                ; offset: $4 (4)
  2384. segmentAttributeSet         ds.l    1                ; offset: $8 (8)
  2385. polyLineAttributeSet     ds.l    1                ; offset: $C (12)
  2386. sizeof                     EQU *                    ; size:   $10 (16)
  2387.                         ENDR
  2388. ; ******************************************************************************
  2389. ; **                                                                             **
  2390. ; **                            PolyLine Routines                                 **
  2391. ; **                                                                             **
  2392. ; ****************************************************************************
  2393.  
  2394. ;
  2395. ; extern TQ3GeometryObject Q3PolyLine_New(const TQ3PolyLineData *polylineData)
  2396. ;
  2397.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2398.         IMPORT_CFM_FUNCTION Q3PolyLine_New
  2399.     ENDIF
  2400.  
  2401. ;
  2402. ; extern TQ3Status Q3PolyLine_Submit(const TQ3PolyLineData *polyLineData, TQ3ViewObject view)
  2403. ;
  2404.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2405.         IMPORT_CFM_FUNCTION Q3PolyLine_Submit
  2406.     ENDIF
  2407.  
  2408. ;
  2409. ; extern TQ3Status Q3PolyLine_SetData(TQ3GeometryObject polyLine, const TQ3PolyLineData *polyLineData)
  2410. ;
  2411.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2412.         IMPORT_CFM_FUNCTION Q3PolyLine_SetData
  2413.     ENDIF
  2414.  
  2415. ;
  2416. ; extern TQ3Status Q3PolyLine_GetData(TQ3GeometryObject polyLine, TQ3PolyLineData *polyLineData)
  2417. ;
  2418.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2419.         IMPORT_CFM_FUNCTION Q3PolyLine_GetData
  2420.     ENDIF
  2421.  
  2422. ;
  2423. ; extern TQ3Status Q3PolyLine_EmptyData(TQ3PolyLineData *polyLineData)
  2424. ;
  2425.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2426.         IMPORT_CFM_FUNCTION Q3PolyLine_EmptyData
  2427.     ENDIF
  2428.  
  2429. ;
  2430. ; extern TQ3Status Q3PolyLine_GetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, TQ3Point3D *position)
  2431. ;
  2432.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2433.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexPosition
  2434.     ENDIF
  2435.  
  2436. ;
  2437. ; extern TQ3Status Q3PolyLine_SetVertexPosition(TQ3GeometryObject polyLine, unsigned long index, const TQ3Point3D *position)
  2438. ;
  2439.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2440.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexPosition
  2441.     ENDIF
  2442.  
  2443. ;
  2444. ; extern TQ3Status Q3PolyLine_GetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2445. ;
  2446.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2447.         IMPORT_CFM_FUNCTION Q3PolyLine_GetVertexAttributeSet
  2448.     ENDIF
  2449.  
  2450. ;
  2451. ; extern TQ3Status Q3PolyLine_SetVertexAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2452. ;
  2453.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2454.         IMPORT_CFM_FUNCTION Q3PolyLine_SetVertexAttributeSet
  2455.     ENDIF
  2456.  
  2457. ;
  2458. ; extern TQ3Status Q3PolyLine_GetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet *attributeSet)
  2459. ;
  2460.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2461.         IMPORT_CFM_FUNCTION Q3PolyLine_GetSegmentAttributeSet
  2462.     ENDIF
  2463.  
  2464. ;
  2465. ; extern TQ3Status Q3PolyLine_SetSegmentAttributeSet(TQ3GeometryObject polyLine, unsigned long index, TQ3AttributeSet attributeSet)
  2466. ;
  2467.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2468.         IMPORT_CFM_FUNCTION Q3PolyLine_SetSegmentAttributeSet
  2469.     ENDIF
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475. ; ******************************************************************************
  2476. ; **                                                                             **
  2477. ; **                        Torus Data Structure Definitions                     **
  2478. ; **                                                                             **
  2479. ; ****************************************************************************
  2480.  
  2481. TQ3TorusData            RECORD 0
  2482. origin                     ds        TQ3Point3D        ; offset: $0 (0)
  2483. orientation                 ds        TQ3Vector3D        ; offset: $C (12)
  2484. majorRadius                 ds        TQ3Vector3D        ; offset: $18 (24)
  2485. minorRadius                 ds        TQ3Vector3D        ; offset: $24 (36)
  2486. ratio                     ds        Float32            ; offset: $30 (48)
  2487. uMin                     ds        Float32            ; offset: $34 (52)
  2488. uMax                     ds        Float32            ; offset: $38 (56)
  2489. vMin                     ds        Float32            ; offset: $3C (60)
  2490. vMax                     ds        Float32            ; offset: $40 (64)
  2491. caps                     ds.l    1                ; offset: $44 (68)
  2492. interiorAttributeSet     ds.l    1                ; offset: $48 (72)
  2493. torusAttributeSet         ds.l    1                ; offset: $4C (76)
  2494. sizeof                     EQU *                    ; size:   $50 (80)
  2495.                         ENDR
  2496. ; ******************************************************************************
  2497. ; **                                                                             **
  2498. ; **                                Torus Routines                                 **
  2499. ; **                                                                             **
  2500. ; ****************************************************************************
  2501.  
  2502. ;
  2503. ; extern TQ3GeometryObject Q3Torus_New(const TQ3TorusData *torusData)
  2504. ;
  2505.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2506.         IMPORT_CFM_FUNCTION Q3Torus_New
  2507.     ENDIF
  2508.  
  2509. ;
  2510. ; extern TQ3Status Q3Torus_Submit(const TQ3TorusData *torusData, TQ3ViewObject view)
  2511. ;
  2512.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2513.         IMPORT_CFM_FUNCTION Q3Torus_Submit
  2514.     ENDIF
  2515.  
  2516. ;
  2517. ; extern TQ3Status Q3Torus_SetData(TQ3GeometryObject torus, const TQ3TorusData *torusData)
  2518. ;
  2519.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2520.         IMPORT_CFM_FUNCTION Q3Torus_SetData
  2521.     ENDIF
  2522.  
  2523. ;
  2524. ; extern TQ3Status Q3Torus_GetData(TQ3GeometryObject torus, TQ3TorusData *torusData)
  2525. ;
  2526.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2527.         IMPORT_CFM_FUNCTION Q3Torus_GetData
  2528.     ENDIF
  2529.  
  2530. ;
  2531. ; extern TQ3Status Q3Torus_SetOrigin(TQ3GeometryObject torus, const TQ3Point3D *origin)
  2532. ;
  2533.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2534.         IMPORT_CFM_FUNCTION Q3Torus_SetOrigin
  2535.     ENDIF
  2536.  
  2537. ;
  2538. ; extern TQ3Status Q3Torus_SetOrientation(TQ3GeometryObject torus, const TQ3Vector3D *orientation)
  2539. ;
  2540.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2541.         IMPORT_CFM_FUNCTION Q3Torus_SetOrientation
  2542.     ENDIF
  2543.  
  2544. ;
  2545. ; extern TQ3Status Q3Torus_SetMajorRadius(TQ3GeometryObject torus, const TQ3Vector3D *majorRadius)
  2546. ;
  2547.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2548.         IMPORT_CFM_FUNCTION Q3Torus_SetMajorRadius
  2549.     ENDIF
  2550.  
  2551. ;
  2552. ; extern TQ3Status Q3Torus_SetMinorRadius(TQ3GeometryObject torus, const TQ3Vector3D *minorRadius)
  2553. ;
  2554.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2555.         IMPORT_CFM_FUNCTION Q3Torus_SetMinorRadius
  2556.     ENDIF
  2557.  
  2558. ;
  2559. ; extern TQ3Status Q3Torus_SetRatio(TQ3GeometryObject torus, float ratio)
  2560. ;
  2561.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2562.         IMPORT_CFM_FUNCTION Q3Torus_SetRatio
  2563.     ENDIF
  2564.  
  2565. ;
  2566. ; extern TQ3Status Q3Torus_GetOrigin(TQ3GeometryObject torus, TQ3Point3D *origin)
  2567. ;
  2568.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2569.         IMPORT_CFM_FUNCTION Q3Torus_GetOrigin
  2570.     ENDIF
  2571.  
  2572. ;
  2573. ; extern TQ3Status Q3Torus_GetOrientation(TQ3GeometryObject torus, TQ3Vector3D *orientation)
  2574. ;
  2575.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2576.         IMPORT_CFM_FUNCTION Q3Torus_GetOrientation
  2577.     ENDIF
  2578.  
  2579. ;
  2580. ; extern TQ3Status Q3Torus_GetMajorRadius(TQ3GeometryObject torus, TQ3Vector3D *majorRadius)
  2581. ;
  2582.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2583.         IMPORT_CFM_FUNCTION Q3Torus_GetMajorRadius
  2584.     ENDIF
  2585.  
  2586. ;
  2587. ; extern TQ3Status Q3Torus_GetMinorRadius(TQ3GeometryObject torus, TQ3Vector3D *minorRadius)
  2588. ;
  2589.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2590.         IMPORT_CFM_FUNCTION Q3Torus_GetMinorRadius
  2591.     ENDIF
  2592.  
  2593. ;
  2594. ; extern TQ3Status Q3Torus_GetRatio(TQ3GeometryObject torus, float *ratio)
  2595. ;
  2596.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2597.         IMPORT_CFM_FUNCTION Q3Torus_GetRatio
  2598.     ENDIF
  2599.  
  2600. ;
  2601. ; extern TQ3Status Q3Torus_EmptyData(TQ3TorusData *torusData)
  2602. ;
  2603.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2604.         IMPORT_CFM_FUNCTION Q3Torus_EmptyData
  2605.     ENDIF
  2606.  
  2607.  
  2608.  
  2609.  
  2610. ; ******************************************************************************
  2611. ; **                                                                             **
  2612. ; **                        Triangle Data Structure Definitions                     **
  2613. ; **                                                                             **
  2614. ; ****************************************************************************
  2615.  
  2616. TQ3TriangleData            RECORD 0
  2617. vertices                 ds.b    3 * TQ3Vertex3D.sizeof ; offset: $0 (0)
  2618. triangleAttributeSet     ds.l    1                ; offset: $30 (48)
  2619. sizeof                     EQU *                    ; size:   $34 (52)
  2620.                         ENDR
  2621. ; ******************************************************************************
  2622. ; **                                                                             **
  2623. ; **                            Triangle Routines                                 **
  2624. ; **                                                                             **
  2625. ; ****************************************************************************
  2626.  
  2627. ;
  2628. ; extern TQ3GeometryObject Q3Triangle_New(const TQ3TriangleData *triangleData)
  2629. ;
  2630.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2631.         IMPORT_CFM_FUNCTION Q3Triangle_New
  2632.     ENDIF
  2633.  
  2634. ;
  2635. ; extern TQ3Status Q3Triangle_Submit(const TQ3TriangleData *triangleData, TQ3ViewObject view)
  2636. ;
  2637.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2638.         IMPORT_CFM_FUNCTION Q3Triangle_Submit
  2639.     ENDIF
  2640.  
  2641. ;
  2642. ; extern TQ3Status Q3Triangle_SetData(TQ3GeometryObject triangle, const TQ3TriangleData *triangleData)
  2643. ;
  2644.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2645.         IMPORT_CFM_FUNCTION Q3Triangle_SetData
  2646.     ENDIF
  2647.  
  2648. ;
  2649. ; extern TQ3Status Q3Triangle_GetData(TQ3GeometryObject triangle, TQ3TriangleData *triangleData)
  2650. ;
  2651.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2652.         IMPORT_CFM_FUNCTION Q3Triangle_GetData
  2653.     ENDIF
  2654.  
  2655. ;
  2656. ; extern TQ3Status Q3Triangle_EmptyData(TQ3TriangleData *triangleData)
  2657. ;
  2658.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2659.         IMPORT_CFM_FUNCTION Q3Triangle_EmptyData
  2660.     ENDIF
  2661.  
  2662. ;
  2663. ; extern TQ3Status Q3Triangle_GetVertexPosition(TQ3GeometryObject triangle, unsigned long index, TQ3Point3D *point)
  2664. ;
  2665.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2666.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexPosition
  2667.     ENDIF
  2668.  
  2669. ;
  2670. ; extern TQ3Status Q3Triangle_SetVertexPosition(TQ3GeometryObject triangle, unsigned long index, const TQ3Point3D *point)
  2671. ;
  2672.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2673.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexPosition
  2674.     ENDIF
  2675.  
  2676. ;
  2677. ; extern TQ3Status Q3Triangle_GetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet *attributeSet)
  2678. ;
  2679.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2680.         IMPORT_CFM_FUNCTION Q3Triangle_GetVertexAttributeSet
  2681.     ENDIF
  2682.  
  2683. ;
  2684. ; extern TQ3Status Q3Triangle_SetVertexAttributeSet(TQ3GeometryObject triangle, unsigned long index, TQ3AttributeSet attributeSet)
  2685. ;
  2686.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2687.         IMPORT_CFM_FUNCTION Q3Triangle_SetVertexAttributeSet
  2688.     ENDIF
  2689.  
  2690.  
  2691.  
  2692.  
  2693. ; ******************************************************************************
  2694. ; **                                                                             **
  2695. ; **                        TriGrid Data Structure Definitions                     **
  2696. ; **                                                                             **
  2697. ; ****************************************************************************
  2698.  
  2699. TQ3TriGridData            RECORD 0
  2700. numRows                     ds.l    1                ; offset: $0 (0)
  2701. numColumns                 ds.l    1                ; offset: $4 (4)
  2702. vertices                 ds.l    1                ; offset: $8 (8)
  2703. facetAttributeSet         ds.l    1                ; offset: $C (12)
  2704. triGridAttributeSet         ds.l    1                ; offset: $10 (16)
  2705. sizeof                     EQU *                    ; size:   $14 (20)
  2706.                         ENDR
  2707. ; ******************************************************************************
  2708. ; **                                                                             **
  2709. ; **                                TriGrid Routines                             **
  2710. ; **                                                                             **
  2711. ; ****************************************************************************
  2712.  
  2713. ;
  2714. ; extern TQ3GeometryObject Q3TriGrid_New(const TQ3TriGridData *triGridData)
  2715. ;
  2716.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2717.         IMPORT_CFM_FUNCTION Q3TriGrid_New
  2718.     ENDIF
  2719.  
  2720. ;
  2721. ; extern TQ3Status Q3TriGrid_Submit(const TQ3TriGridData *triGridData, TQ3ViewObject view)
  2722. ;
  2723.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2724.         IMPORT_CFM_FUNCTION Q3TriGrid_Submit
  2725.     ENDIF
  2726.  
  2727. ;
  2728. ; extern TQ3Status Q3TriGrid_SetData(TQ3GeometryObject triGrid, const TQ3TriGridData *triGridData)
  2729. ;
  2730.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2731.         IMPORT_CFM_FUNCTION Q3TriGrid_SetData
  2732.     ENDIF
  2733.  
  2734. ;
  2735. ; extern TQ3Status Q3TriGrid_GetData(TQ3GeometryObject triGrid, TQ3TriGridData *triGridData)
  2736. ;
  2737.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2738.         IMPORT_CFM_FUNCTION Q3TriGrid_GetData
  2739.     ENDIF
  2740.  
  2741. ;
  2742. ; extern TQ3Status Q3TriGrid_EmptyData(TQ3TriGridData *triGridData)
  2743. ;
  2744.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2745.         IMPORT_CFM_FUNCTION Q3TriGrid_EmptyData
  2746.     ENDIF
  2747.  
  2748. ;
  2749. ; extern TQ3Status Q3TriGrid_GetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3Point3D *position)
  2750. ;
  2751.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2752.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexPosition
  2753.     ENDIF
  2754.  
  2755. ;
  2756. ; extern TQ3Status Q3TriGrid_SetVertexPosition(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, const TQ3Point3D *position)
  2757. ;
  2758.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2759.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexPosition
  2760.     ENDIF
  2761.  
  2762. ;
  2763. ; extern TQ3Status Q3TriGrid_GetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet *attributeSet)
  2764. ;
  2765.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2766.         IMPORT_CFM_FUNCTION Q3TriGrid_GetVertexAttributeSet
  2767.     ENDIF
  2768.  
  2769. ;
  2770. ; extern TQ3Status Q3TriGrid_SetVertexAttributeSet(TQ3GeometryObject triGrid, unsigned long rowIndex, unsigned long columnIndex, TQ3AttributeSet attributeSet)
  2771. ;
  2772.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2773.         IMPORT_CFM_FUNCTION Q3TriGrid_SetVertexAttributeSet
  2774.     ENDIF
  2775.  
  2776. ;
  2777. ; extern TQ3Status Q3TriGrid_GetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet *facetAttributeSet)
  2778. ;
  2779.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2780.         IMPORT_CFM_FUNCTION Q3TriGrid_GetFacetAttributeSet
  2781.     ENDIF
  2782.  
  2783. ;
  2784. ; extern TQ3Status Q3TriGrid_SetFacetAttributeSet(TQ3GeometryObject triGrid, unsigned long faceIndex, TQ3AttributeSet facetAttributeSet)
  2785. ;
  2786.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2787.         IMPORT_CFM_FUNCTION Q3TriGrid_SetFacetAttributeSet
  2788.     ENDIF
  2789.  
  2790.  
  2791.  
  2792.  
  2793. ; ******************************************************************************
  2794. ; **                                                                             **
  2795. ; **                        TriMesh Data Structure Definitions                     **
  2796. ; **                                                                             **
  2797. ; ****************************************************************************
  2798.  
  2799. TQ3TriMeshTriangleData    RECORD 0
  2800. pointIndices             ds.l    3                ; offset: $0 (0)
  2801. sizeof                     EQU *                    ; size:   $C (12)
  2802.                         ENDR
  2803. TQ3TriMeshEdgeData        RECORD 0
  2804. pointIndices             ds.l    2                ; offset: $0 (0)
  2805. triangleIndices             ds.l    2                ; offset: $8 (8)
  2806. sizeof                     EQU *                    ; size:   $10 (16)
  2807.                         ENDR
  2808. TQ3TriMeshAttributeData    RECORD 0
  2809. attributeType             ds.l    1                ; offset: $0 (0)        ;  The type of attribute          
  2810. data                     ds.l    1                ; offset: $4 (4)        ;  Pointer to the contiguous     
  2811. ;  attribute data.                 
  2812. attributeUseArray         ds.l    1                ; offset: $8 (8)        ;  This is only used with custom 
  2813. ;  attributes                      
  2814. sizeof                     EQU *                    ; size:   $C (12)
  2815.                         ENDR
  2816. TQ3TriMeshData            RECORD 0
  2817. triMeshAttributeSet         ds.l    1                ; offset: $0 (0)
  2818. numTriangles             ds.l    1                ; offset: $4 (4)
  2819. triangles                 ds.l    1                ; offset: $8 (8)
  2820. numTriangleAttributeTypes  ds.l    1                ; offset: $C (12)
  2821. triangleAttributeTypes     ds.l    1                ; offset: $10 (16)
  2822. numEdges                 ds.l    1                ; offset: $14 (20)
  2823. edges                     ds.l    1                ; offset: $18 (24)
  2824. numEdgeAttributeTypes     ds.l    1                ; offset: $1C (28)
  2825. edgeAttributeTypes         ds.l    1                ; offset: $20 (32)
  2826. numPoints                 ds.l    1                ; offset: $24 (36)
  2827. points                     ds.l    1                ; offset: $28 (40)
  2828. numVertexAttributeTypes     ds.l    1                ; offset: $2C (44)
  2829. vertexAttributeTypes     ds.l    1                ; offset: $30 (48)
  2830. bBox                     ds        TQ3BoundingBox ; offset: $34 (52)
  2831. sizeof                     EQU *                    ; size:   $50 (80)
  2832.                         ENDR
  2833. ; ******************************************************************************
  2834. ; **                                                                             **
  2835. ; **                            TriMesh Routines                                 **
  2836. ; **                                                                             **
  2837. ; ****************************************************************************
  2838.  
  2839. ;
  2840. ; extern TQ3GeometryObject Q3TriMesh_New(const TQ3TriMeshData *triMeshData)
  2841. ;
  2842.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2843.         IMPORT_CFM_FUNCTION Q3TriMesh_New
  2844.     ENDIF
  2845.  
  2846. ;
  2847. ; extern TQ3Status Q3TriMesh_Submit(const TQ3TriMeshData *triMeshData, TQ3ViewObject view)
  2848. ;
  2849.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2850.         IMPORT_CFM_FUNCTION Q3TriMesh_Submit
  2851.     ENDIF
  2852.  
  2853. ;
  2854. ; extern TQ3Status Q3TriMesh_SetData(TQ3GeometryObject triMesh, const TQ3TriMeshData *triMeshData)
  2855. ;
  2856.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2857.         IMPORT_CFM_FUNCTION Q3TriMesh_SetData
  2858.     ENDIF
  2859.  
  2860. ;
  2861. ; extern TQ3Status Q3TriMesh_GetData(TQ3GeometryObject triMesh, TQ3TriMeshData *triMeshData)
  2862. ;
  2863.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2864.         IMPORT_CFM_FUNCTION Q3TriMesh_GetData
  2865.     ENDIF
  2866.  
  2867. ;
  2868. ; extern TQ3Status Q3TriMesh_EmptyData(TQ3TriMeshData *triMeshData)
  2869. ;
  2870.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  2871.         IMPORT_CFM_FUNCTION Q3TriMesh_EmptyData
  2872.     ENDIF
  2873.  
  2874.  
  2875.  
  2876.  
  2877.     ENDIF ; __QD3DGEOMETRY__ 
  2878.  
  2879.